java8 List中指定某个对象去重,lambda表达式解决

判断是否有重复数据,有重复不加到map中

 private static  Predicate distinctByKey(Function keyExtractor) {
        Map seen = new ConcurrentHashMap<>();
        return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
    }

将数据存入List,再用list调用java的stream() api 的过滤方法filter(),将上面的方法传入,方法中传实体的字段,可实现根据字段过滤重复数据

Listlist=new List<>
 List distinct = list.stream().filter(distinctByKey(entry::get***)).collect(Collectors.toList());

你可能感兴趣的:(java8 List中指定某个对象去重,lambda表达式解决)