Kun*_*Lun 1 java lambda java-stream
我有这张地图:
Map<String, Map<String, String>> listMap = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
我想Keys从Mapmain中选择所有与之不同的值Map:listMap.value.key
List<String> distinct = listMap.entrySet().stream()
.map(e -> e.getValue()) //Map<String, String>
//Select key of value
.distinct().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我不知道如何选择key的value的listMap。
您需要flatMap将所有内部Maps 的所有键映射为一个键Stream:
List<String> distinct =
listMap.values() // Collection<Map<String,String>>
.stream() // Stream<Map<String,String>>
.flatMap(map -> map.keySet().stream()) // Stream<String>
.distinct() // Stream<String>
.collect(Collectors.toList()); // List<String>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |