在 java 8 中以 List 的值遍历地图
Iterate over a map with values as List in java 8
遍历 Map<Integer, List<String>>
并转换为类型 List<KeyPair>
。 java 8(使用流)中的任何更好的方法。
天真的方式:
final List<KeyPair> keyPairs = Lists.newArrayList();
for (final Map.Entry<Integer, List<String>> entry : map.entrySet()) {
for (final String value : entry.getValue()) {
keyPairs.add(new KeyPair()
.withHashKey(value)
.withRangeKey(entry.getKey()));
}
}
首先,遍历地图条目集,然后您可以使用 flatMap
作为地图键的值列表,并使用条目键和列表的每个值创建 KeyPair
并收集为列表.
List<KeyPair> keyPairs = map.entrySet()
.stream()
.flatMap(entry -> entry.getValue()
.stream()
.map(value -> new KeyPair()
.withHashKey(value)
.withRangeKey(entry.getKey())))
.collect(Collectors.toList());
遍历 Map<Integer, List<String>>
并转换为类型 List<KeyPair>
。 java 8(使用流)中的任何更好的方法。
天真的方式:
final List<KeyPair> keyPairs = Lists.newArrayList();
for (final Map.Entry<Integer, List<String>> entry : map.entrySet()) {
for (final String value : entry.getValue()) {
keyPairs.add(new KeyPair()
.withHashKey(value)
.withRangeKey(entry.getKey()));
}
}
首先,遍历地图条目集,然后您可以使用 flatMap
作为地图键的值列表,并使用条目键和列表的每个值创建 KeyPair
并收集为列表.
List<KeyPair> keyPairs = map.entrySet()
.stream()
.flatMap(entry -> entry.getValue()
.stream()
.map(value -> new KeyPair()
.withHashKey(value)
.withRangeKey(entry.getKey())))
.collect(Collectors.toList());