快捷导航

怎么比较list中的对象

比如泛型为Person类的List,里面有多个Person对象,Person类有多个属性,姓名、年龄、性别等等。怎么从List中去除姓名重复的Person对象呢。是不是要重写什么equals方法?麻烦讲细点

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

可以利用set集合的不重复特性去重,代码如下:HashSet h = new HashSet(list);list.clear();list.addAll(h);意思也很好理解,list是你的list集合,通过HashSet之后,变成了一个不重复但是无序的set集合,再将原本的list清空,将set中的集合加入list中,这个时候list就变成了不重复的集合,你可以写个例子试试
回复

使用道具 举报

自己定义的类中equals方法都是比地址的,而你创建的实例地址都是不一样的!所以他们都不一样,list比较时都不一样,无法去重复!把equals方法修改为比较内容后,就可以了!
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP