/*
* @description:使用distinctByKey方法根据对象的属性进行去重
* @author: zs
* @date: 2023/12/18 14:29
* @param: [keyExtractor]
* @return: java.util.function.Predicate<T>
**/
public 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;
}
public static void main(String[] args) {
List<User> users = userList.stream().filter(distinctByKey((s -> s.getUserName()))).collect(Collectors.toList());
List<String> repeatList = testList.stream().filter(DeduplicationUtil.distinctNotByKey(Student::getStuName)).map(Student::getStuName).collect(Collectors.toList());
}
List去重-使用distinctByKey方法根据对象的属性进行去重
于 2023-12-18 16:17:58 首次发布