Stream通过某个字段过滤重复元素
List<Book> list = new ArrayList<>(); list.add(new Book("apple")); list.add(new Book("apple")); list.add(new Book("pear")); list.add(new Book("melon")); List<Book> assetBasicInfoEntityList = list.stream() .filter(distinctByKey(Book::getName)) .collect(Collectors.toList());
private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { Set<Object> seen = ConcurrentHashMap.newKeySet(); return t -> seen.add(keyExtractor.apply(t)); }
posted on 2022-11-04 15:10 MaXianZhe 阅读(1501) 评论(0) 编辑 收藏 举报