废话不多说,直接上代码
1.利用map
public static void main(String args[]) {
CabTeamUserDto cabTeamUserDto1 = new CabTeamUserDto();
cabTeamUserDto1.setUserId("Hero1");
cabTeamUserDto1.setUserName("英雄1");
CabTeamUserDto cabTeamUserDto2 = new CabTeamUserDto();
cabTeamUserDto2.setUserId("Hero2");
cabTeamUserDto2.setUserName("英雄2");
CabTeamUserDto cabTeamUserDto3 = new CabTeamUserDto();
cabTeamUserDto3.setUserId("Hero3");
cabTeamUserDto3.setUserName("英雄3");
CabTeamUserDto cabTeamUserDto4 = new CabTeamUserDto();
cabTeamUserDto4.setUserId("Hero4");
cabTeamUserDto4.setUserName("英雄4");
List<CabTeamUserDto> list1 = new ArrayList<>();
list1.add(cabTeamUserDto1);
list1.add(cabTeamUserDto2);
list1.add(cabTeamUserDto3);
list1.add(cabTeamUserDto4);
Map<String, CabTeamUserDto> map = new HashMap<>();
for (CabTeamUserDto cabTeamUser : list1) {
if (!map.containsKey(cabTeamUser.getUserId())) {
map.put(cabTeamUser.getUserId(), cabTeamUser);
}
}
System.out.println(DataConverterUtil.object2Json(map));
List<CabTeamUserDto> cabList = new ArrayList<CabTeamUserDto>(map.values());
System.out.println(DataConverterUtil.object2Json(cabList));
}
运行结果
{"Hero1":{"userId":"Hero1","userName":"英雄1","id":"3589a5c4-3b21-434a-98d0-e44ec0be20d8"},"Hero4":{"userId":"Hero4","userName":"英雄4","id":"259f7cb2-cfc6-4cc8-b299-12df1065bae7"},"Hero2":{"userId":"Hero2","userName":"英雄2","id":"e18150c2-7043-4115-b341-cadd7e0a254b"},"Hero3":{"userId":"Hero3","userName":"英雄3","id":"8cb2f8ee-8926-4a8f-8ebb-c48a63492582"}}
----------
[{"userId":"Hero1","userName":"英雄1","id":"3589a5c4-3b21-434a-98d0-e44ec0be20d8"},{"userId":"Hero4","userName":"英雄4","id":"259f7cb2-cfc6-4cc8-b299-12df1065bae7"},{"userId":"Hero2","userName":"英雄2","id":"e18150c2-7043-4115-b341-cadd7e0a254b"},{"userId":"Hero3","userName":"英雄3","id":"8cb2f8ee-8926-4a8f-8ebb-c48a63492582"}]
2.java8 stream api
如果是对象的话,需要重写hashcode和equals
List<String> list = new ArrayList<String>();
list.add("1");
list.add("1");
list.add("2");
// distinct方法进行去重
List<String> list1 = list.stream().distinct().collect(Collectors.toList());