欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java集合通过对象属性进行去重

程序员文章站 2022-07-03 20:06:37
...

java集合通过对象属性进行去重

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;
    }

使用:
(根据实体类的name属性进行去重)

list.stream().filter(distinctByKey(Entity::getName)).collect(Collectors.toList())