美文网首页
lombda 对象list 去重

lombda 对象list 去重

作者: _浅墨_ | 来源:发表于2022-12-14 07:46 被阅读0次
  1. lombda 对象list 去重
  2. List 去重 | List对象去重 by ja
  3. List集合去重,排序,对象,equals,
  4. 利用java8的新特性stream实现list数据去重
  5. Stream + Lambda 表达式
  6. Java8 根据对象某个属性值去重
  7. Java list 去重
  8. 常用代码集
  9. Java List操作6(distinct—去重)
  10. list去重
  11.  private List<SysUser> distinctUser(List<SysUser> sysUserList) {
            if (CollectionUtils.isEmpty(sysUserList)) {
                return Collections.EMPTY_LIST;
            }
            return sysUserList.stream().filter(user -> StringUtils.isNotEmpty(user.getNum())).collect(Collectors.collectingAndThen(
                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(user -> user.getNum()))),
                    ArrayList::new));
        }
    
    // 定义辅助方法
    public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
            Map<Object, Boolean> seen = new ConcurrentHashMap<>();
            return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
        }
    
    // 去重
    filterUsers = filterUsers.stream().filter(distinctByKey(user -> user.getUserId())).collect(Collectors.toList());
    

    相关文章