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;
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


