第一种:
1):类中添加下面方法
private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
2):使用
l = l.stream().filter(distinctByKey(User::getId)).collect(Collectors.toList());
第二种:
1):类中添加下面方法
public static List<User> removeDuplicateUser(List<User> users){
Set<User> set = new TreeSet<User>((user1, user2) -> user1.getId().compareTo(user2.getId()));
set.addAll(users);
return new ArrayList<>(set);
}
2):使用
l = removeDuplicateUser(l);