代码之家  ›  专栏  ›  技术社区  ›  R.Henderson

在Java 8中返回唯一的映射值

  •  -1
  • R.Henderson  · 技术社区  · 6 年前

    您好,我有一个情况,我有权限列表(权限列表),我需要将此列表转换为地图<字符串,权限列表>。在映射中,键是“type”,相同的对象将插入到相应的列表值中。我编写的代码工作得很好,但它存储的是重复的权限对象。我需要将唯一的对象存储到列表中。我怎样才能做到这一点。当前代码在下面,它正在列表中存储重复对象:

    listofRights  
            .stream()  
            .filter(permission-> StringUtils.isNotEmpty(permission.getType()))  
            .collect(Collectors  
                .groupingBy(Permission::getRole,  
                    Collectors.mapping(identity(), Collectors.toList())));  
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Eugene    6 年前

    我想你需要换衣服 Collectors.toList() 具有 Collectors.toSet() 假设 Permission 器具 equals/hashCode