博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

java小知识点积累

Posted on 2018-08-17 09:31  和风细雨汪汪  阅读(94)  评论(0)    收藏  举报

java8优雅去重

字符串集合去重

List<String> distinctElements = list.stream().distinct().collect(Collectors.toList());

 

根据对象属性去重

public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor)
    {
        Map<Object, Boolean> map = new ConcurrentHashMap<>();
        return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
    }
//使用举例
persons.stream().filter(distinctByKey(Person::getName))