java数组中删除元素的方法及示例分享

欣喜 Java经验 发布时间:2024-11-21 14:07:47 阅读数:10099 1
下文笔者讲述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;
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202411/17321697838184.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者