public class Test { public static void main(String[] args) { Book one = Book.builder().id(1).name("one").build(); Book two = Book.builder().id(1).name("two").build(); Book three = Book.builder().id(2).name("one").build(); List<Book> voList = Lists.newArrayList(one, three, two); List<Book> finalList = voList.stream().filter(distinctByKey(Book::getId)).collect(Collectors.toList()); System.out.println(finalList); } private static <T> Predicate<T> distinctByKey(Function<? super T, Object> function) { Map<Object, Boolean> map = new ConcurrentHashMap<>(); return t -> map.putIfAbsent(function.apply(t), Boolean.TRUE) == null; } }
根据对象某个属性进行过滤
最新推荐文章于 2022-12-02 22:02:50 发布