dev*_*l83 2 java java-8 java-stream
我有一张像波纹管的地图,
[key = "car", value = ["bmw", "toyota"]]
[key = "bike", value = ["honda", "kawasaki"]]
Run Code Online (Sandbox Code Playgroud)
我想使用java 8功能apis将其转换为另一个地图,如bellow,
[key = "bmw", value = "car"]
[key = "toyota", value = "car"]
[key = "honda", value = "bike"]
[key = "kawasaki", value = "bike"]
Run Code Online (Sandbox Code Playgroud)
将地图值展平为条目然后收集它们:
Map<String, String> m2 = map
.entrySet()
.stream()
.flatMap(e -> e.getValue().stream().map(v -> new AbstractMap.SimpleEntry<>(v, e.getKey())))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
Run Code Online (Sandbox Code Playgroud)
这可以通过导入AbstractMap.SimpleEntry
和缩短Map.Entry
.
归档时间: |
|
查看次数: |
1569 次 |
最近记录: |