Java中清除数组重复元素的一种算法

看了很多类似算法都要调用导入包来解决,本文适合初学者。

如有改进优化,敬请留言。

问题描述:    

目前有数组 int[] arr = {11,2, 4, 2 10, 11},试清除该数组的重复元素,返回的数组不准浪费长度。

代码如下:

public class remove_object_from_array {
	public static void main(String[] args) {

		int[] arr= {11,2,4,2,10,11};//静态定义需要清除的数组
		int[] arr2=new int[arr.length];//再定义一个长度与之相同的数组
		int n=0;
		for (int i = 0; i < arr.length; i++) {
			for (int j = i+1; j < arr.length; j++) {
				if(arr[i]==arr[j]&&i!=j) {
					arr[j]=0;
				}
			}//通过二次遍历将重复元素的后面那个赋值为0(如0本来就在数组中则可以改变为其他赋值)
		}
		for (int x = 0; x < arr.length; x++) {
			if(arr[x]!=0) {
				arr2[n]=arr[x];//将原数组中的非0元素赋值给数组2中的元素;注意:未被赋值的数组2中元素值为0
				n++;//自加实现数组2元素的依次赋值的同时也计算了非0元素的个数
			}
		}
		int[]arr3=new int [n];//定义数组3的长度为n
		for (int i = 0; i < arr3.length; i++) {
			arr3[i]=arr2[i];
		}//依次赋值
		for (int i = 0; i < arr3.length; i++) {
			System.out.print(arr3[i]+" ");
		}//遍历输出
	}
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值