去除ArrayList集合中的重复自定义对象

package cn.itcast_02;

import java.util.ArrayList;
import java.util.Iterator;

/*
 * 需求:去除ArrayList集合中的重复自定义对象
 * 
 * 我们按照字符串一样的操作,发现问题了
 *    
 *    通过简单的分析,我们知道了问题出在了判断上。
 *    
 *    而这个判断功能是集合自己提供的,所以我们如果想很清楚的知道它
 *    是如何判断的,就因该看原码
 * contains()方法的底层依赖的是equals()方法。
 * 而我们学生类中没有equals()方法,这个时候,就默认使用的是它父类的Object的equals()方法
 * Object()方法的equals()方法默认比较的是地址值,所以,它们都进去了因为new的东西,地址值都不同    
 * 所以我们要重写equals()方法。
 */
public class 去除ArrayList集合中的重复自定义对象 {

	public static void main(String[] args) {
		//创建集合对象
      ArrayList array = new ArrayList();
      
      //创建学生对象
     Student s1 = new Student("貂蝉",19);
     Student s2 = new Student("西施",14);
     Student s3 = new Student("陈圆圆",19);
     Student s4 = new Student("王昭君",16);
     Student s5 = new Student("陈圆圆",18);
     Student s6 = new Student("陈圆圆",18);
     
     //添加元素
     array.add(s1);
     array.add(s2);
     array.add(s3);
     array.add(s4);
     array.add(s5);
     array.add(s6);
     
     //创建新集合
	ArrayList newarray = new ArrayList();
		
	//遍历旧集合,获得每一个元素
	Iterator it = array.iterator();
	while(it.hasNext()) {
		Student s =(Student)it.next();
			
		//那这个集合去找新集合,看看有没有
		if(!newarray.contains(s)) {
			newarray.add(s);
		}
	}
	//遍历集合
	for(int x =0;x<newarray.size();x++) {
			Student s =(Student)newarray.get(x);
			System.out.println(s.getName()+"---"+s.getAge());
	}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unknown To Known

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值