jdk8 按照属性中某一个字段去重

 /**
     * 根据属性中某一个字段去重
     * @param keyExtractor
     * @param 
     * @return
     */
    public static  Predicate distinctByKey(Function keyExtractor) {
        Map map = new ConcurrentHashMap<>();
        return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
    }

举个栗子:

result.stream().filter(distinctByKey(e -> e.getUnitId())).collect(Collectors.toList());

 

你可能感兴趣的:(java)