集合去重

直接上代码,记录下,方便下次直接用:

 1 @Test
 2     public void distinctMyUser() {
 3         List<MyUser> list1 = new ArrayList<>();
 4         MyUser user1 = new MyUser();
 5         user1.setUserName("zhangsan");
 6         user1.setPassWord("1234567");
 7         list1.add(user1);
 8 
 9         MyUser user2 = new MyUser();
10         user2.setUserName("zhangsan");
11         user2.setPassWord("123456");
12         list1.add(user2);
13 
14         MyUser user3 = new MyUser();
15         user3.setUserName("lisi");
16         user3.setPassWord("123456");
17         list1.add(user3);
18 
19         MyUser user4 = new MyUser();
20         user4.setUserName("lisi");
21         user4.setPassWord("123456");
22         list1.add(user4);
23 
24         for (MyUser b : list1) {
25             System.out.println("去重前:" + b.toString());
26         }
27 
28         //去重
29         list1 = removeDuplicateOutputField(list1);
30 
31         for (MyUser b : list1) {
32             System.out.println("去重后:" + b.toString());
33         }
34     }
35 
36     /**
37      * 根据list中对象某些字段去重
38      * @param list 需要去重的list
39      * @return 返回去重后的list
40      */
41     private static List<MyUser> removeDuplicateOutputField(List<MyUser> list) {
42         Set<MyUser> set = new TreeSet<>(new Comparator<MyUser>() {
43             @Override
44             public int compare(MyUser myUser, MyUser myUserNew) {
45                 int compareToResult = 1;//==0表示重复
46                 //需要去重的字段在此处比较过滤
47                 if(StringUtils.equals(myUser.getUserName(), myUserNew.getUserName()) &&
48                         StringUtils.equals(myUser.getPassWord(), myUserNew.getPassWord())) {
49                     compareToResult = 0;
50                 }
51                 return compareToResult;
52             }
53         });
54         set.addAll(list);
55         return new ArrayList<>(set);
56     }
57 
58     @Data
59     public class MyUser {
60         private String userName;
61         private String passWord;
62     }

运行后的结果:

原文地址:https://www.cnblogs.com/yinfengjiujian/p/11987433.html