比如泛型为Person类的List,里面有多个Person对象,Person类有多个属性,姓名、年龄、性别等等。怎么从List中去除姓名重复的Person对象呢。是不是要重写什么equals方法?麻烦讲细点
3 回答
已采纳
Elife漫格局
TA贡献17条经验 获得超13个赞
可以利用set集合的不重复特性去重,代码如下:
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
意思也很好理解,list是你的list集合,通过HashSet之后,变成了一个不重复但是无序的set集合,再将原本的list清空,将set中的集合加入list中,这个时候list就变成了不重复的集合,你可以写个例子试试
精慕门9254224
TA贡献167条经验 获得超46个赞
自己定义的类中equals方法都是比地址的,而你创建的实例地址都是不一样的!所以他们都不一样,list比较时都不一样,无法去重复!把equals方法修改为比较内容后,就可以了!
添加回答
举报
0/150
提交
取消