为了账号安全,请及时绑定邮箱和手机立即绑定

怎么比较list中的对象

怎么比较list中的对象

fenkapian 2017-05-09 23:02:27
比如泛型为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就变成了不重复的集合,你可以写个例子试试
查看完整回答
反对 回复 2017-05-10
?
精慕门9254224

TA贡献167条经验 获得超46个赞

自己定义的类中equals方法都是比地址的,而你创建的实例地址都是不一样的!所以他们都不一样,list比较时都不一样,无法去重复!把equals方法修改为比较内容后,就可以了!
查看完整回答
反对 回复 2017-05-09
  • fenkapian
    fenkapian
    怎么重写equals啊
  • 精慕门9254224
    精慕门9254224
    方法重写么!就是在你的person类中,加入一个与object类一样的equals方法啊!代码应该是这样吧! public boolean equals(Object obj){return false;} 方法体中的内容,按照你自己的需求自己加哦!
  • fenkapian
    fenkapian
    非常感谢
  • 3 回答
  • 0 关注
  • 1867 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信