UDN-企业互联网技术人气社区

板块导航

浏览  : 1165
回复  : 0

[讨论交流] JAVA技巧:去除ArrayList<Object>里面的重复记录

[复制链接]
葡萄柚的头像 楼主
  简单说明

  ArrayList中保存的是某种类型的对象,如User,现在需要将对象属性userid重复的都去掉,使userid唯一,要如何处理?

  实现步骤

  代码如下方所示,实现一个Comparator的比较器,然后比较两个对象的属性,如果对象属性相同,则返回0,并且因为treeset中的记录不会重复,所以就可以达到去重的目的。
  1. public void removeDuplicates(List<Object> l) {
  2.     // ... the list is already populated
  3.     Set<Object> s = new TreeSet<Object>(new Comparator<Object>() {

  4.         @Override
  5.         public int compare(Object o1, Object o2) {
  6.             // ... compare the two object according to your requirements
  7.             return 0;
  8.         }
  9.     });
  10.     s.addAll(l);
  11.     List<Object> res = Arrays.asList(s.toArray());
  12. }
复制代码

  实际运用的代码

  下面是实际运用过程中实现的代码,作用是将UserInfo中userid字段重复的去掉,如下:
  1. /**
  2.   * 将列表中重复的用户移除,重复指的是userid相同
  3.   * @param userList
  4.   * @return
  5.   */
  6. public ArrayList<UserInfo> removeDuplicteUsers(ArrayList<UserInfo> userList){
  7.       Set<UserInfo> s= new TreeSet<UserInfo>(new Comparator<UserInfo>(){

  8.            @Override
  9.            public int compare(UserInfo o1, UserInfo o2) {
  10.                 return o1.userId.compareTo(o2.userId);
  11.            }

  12.       });

  13.       s.addAll(userList);
  14.       return new ArrayList<UserInfo>(s);
  15. }
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部