去除ArrayList中重复自定义对象元素

去除ArrayList中姓名和年龄相同的对象
集合元素:

ArrayList list = new ArrayList();
list.add(new Person("张三",23));
list.add(new Person("李四",24));
list.add(new Person("王五",23));
list.add(new Person("张三",23));
list.add(new Person("李四",24));
list.add(new Person("赵六",23));

去除相同元素方法:

public static ArrayList getSingle(ArrayList List){
		ArrayList newList = new ArrayList();
		Iterator It = List.iterator();
		while (It.hasNext()){
			Object obj = It.next();
			if(!newList.contains(obj)){
				newList.add(obj);
			}
		}
		return newList;
	}

不重写equals()方法运行结果:

[Person [name=张三, age=23], Person [name=李四, age=24], Person [name=王五, age=23], Person [name=张三, age=23], Person [name=李四, age=24], Person [name=赵六, age=23]]

重写equals()方法结果:

[Person [name=张三, age=23], Person [name=李四, age=24], Person [name=王五, age=23], Person [name=赵六, age=23]]

总结:

contains方法判断是否包含,底层依赖的是equals方法
remove方法判断是否删除,底层依赖的是equals方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值