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

时间:2018-07-24 13:39:59

标签: java java-8 java-stream

你好,我有一个权限列表(权限列表),需要将此列表转换为Map Map <字符串,权限列表>。在map中,键是'type'并且相同的对象将被插入到相应的列表值中。我编写的代码工作得很好,但是它存储了重复的Permission对象。我需要将唯一的对象存储到列表中。我该如何实现。当前代码如下,该代码在列表中存储重复的对象:

listofRights  
        .stream()  
        .filter(permission-> StringUtils.isNotEmpty(permission.getType()))  
        .collect(Collectors  
            .groupingBy(Permission::getRole,  
                Collectors.mapping(identity(), Collectors.toList())));  

1 个答案:

答案 0 :(得分:0)

我猜您需要将Collectors.toList()更改为Collectors.toSet(),假设Permission实现了equals/hashCode