在数组中删除一个元素之经典解决
数组:可以理解为一个容器,并且的长度是固定的,如果你想删除一个元素:
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 }
注意:该要求不需要排序。