Ádá*_*zay 2 java-8 java-stream
我有一个包含多个条目的 LinkedHashMap。我想在第一步中将多个条目减少为单个条目,然后将其映射到单个字符串。例如:我从这样的地图开始:
{"<a>"="</a>", "<b>"="</b>", "<c>"="</c>", "<d>"="</d>"}
Run Code Online (Sandbox Code Playgroud)
最后我想得到一个这样的字符串:
<a><b><c><d></d></c></b></a>
Run Code Online (Sandbox Code Playgroud)
(在这种情况下,字符串按顺序包含键,而不是按相反顺序包含值。但这并不重要,我想要一个通用的解决方案)
我想我需要map.entrySet().stream().reduce(),但是我不知道在reduce方法中写什么,以及如何继续。
由于您通过将键与键和值与值连接来减少条目,因此您要查找的身份是一个键和值均为空字符串的条目。
String reduceEntries(LinkedHashMap<String, String> map) {
Entry<String, String> entry =
map.entrySet()
.stream()
.reduce(
new SimpleImmutableEntry<>("", ""),
(left, right) ->
new SimpleImmutableEntry<>(
left.getKey() + right.getKey(),
right.getValue() + left.getValue()
)
);
return entry.getKey() + entry.getValue();
}
Run Code Online (Sandbox Code Playgroud)
Java 9 添加了Map.entry(key, value)
用于创建不可变条目的静态方法。
归档时间: |
|
查看次数: |
2869 次 |
最近记录: |