java数组中删除元素的方法及示例分享
下文笔者讲述java数组删除元素方法分享,如下所示
//ints是原数组 //temp是新数组 //err待删除元素 j=0; for(int in: ints){ if(int == err) continue; else temp[j++] = in; } ints=temp
删除元素
public static int[] delete(int[] ints,int err) { boolean flag = false; int length = ints.length; //这里只进行了找到第一个需要删除元素位置, //并用后面的元素逐次向前覆盖,并不是真正的删除 //(删除是通过底下重新建立数组赋值进行的) for(int i = 0; i < length; i++) { if(err == ints[i]) { for(int j = i; j < length - 1; j++) { ints[j] = ints[j + 1]; } length--; flag = true; break;//如果要删除全部的err元素 这里改为 i--; //为了防止相邻相同的情况 } } if (flag) System.out.println("删除" + err + "成功!"); else System.out.println("输入err有误,不存在" + err +",无法删除"); //将删除后数组进行重新保存 并返回 int[] result = new int[length]; System.arraycopy(ints,0,result,0,length); return result; }
删除数组中多个元素
//在ints数组中删除包含res数组元素 public static int[] delete(int[] ints,int[] errs) { int index = 0; int[] temp = new int[ints.length]; //通过foreach的循环只能够进行遍历 并不能进行删除修改操作 for (int in: ints){ boolean flag = true; for (int err: errs) if (in == err){ flag = false; break; } if(flag) temp[index++]=in; } //将中间保存的temp数组进行重新保存(删除后面多余的长度) 并返回 //index 也代表着长度 因为在每次获取值后++了 //所以最终是比实际下标多1 int[] result = new int[index]; System.arraycopy(temp,0,result,0,index); return result; }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。