在数组中删除一个元素之经典解决

数组:可以理解为一个容器,并且的长度是固定的,如果你想删除一个元素:

1.可以将其要删除的元素置为null,然后遍历这个数组的时候,需要将数组中出现null的过滤掉

2.可以让被删除的元素的后面的元素,集体的想左移动,然后减小数组的长度。

3.可以最后一个元素代替你要替换的元素,然后减少数组的长度,我个人认为这一种方法稍微简单点:直接上代码

 1 /**
 2  * 从数组中删除一个元素 思想:由于删除后的元素的顺序是不确定的,所以可以最后一个   元素替代你要删除的内容
 3  * 当然也可以用第一个元素去替换你要替换删除的元素
 4  * @author dhb
 5  *
 6  */
 7 public class DeleteElement {
 8 
 9     public static void main(String[] args) {
10         int[] arr = { 1, 3, 4, 2, 5 };
11         //遍历数组:
12        System.out.println(Arrays.toString(deleElement(arr)));
13     }
14     
15     
16     /**
17      * 删除元素
18      * @return
19      */
20     public static int[] deleElement(int[] arr) {
21         Scanner s = new Scanner(System.in);
22         System.out.println("请录入您要删除第几个元素");
23         int num = s.nextInt();// 获取录入的数字
24         if(num < arr.length) {
25             arr[num - 1] = arr[arr.length - 1];//将最后一个元素填充到你要修改的元素的位置
26             //缩小数组的容器
27             int[] newArray = Arrays.copyOf(arr, arr.length - 1);
28             return newArray;
29         }
30         System.out.println("索引越界");
31         return null;
32     }
33     
34 
35 }

注意:该要求不需要排序。

猜你喜欢

转载自www.cnblogs.com/donghaibin/p/9078866.html