[英]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()));
}
}
首先,遍歷 map 條目集,然后您可以使用flatMap
作為 map 鍵的值列表,並使用條目鍵和列表的每個值創建KeyPair
並收集為列表。
List<KeyPair> keyPairs = map.entrySet()
.stream()
.flatMap(entry -> entry.getValue()
.stream()
.map(value -> new KeyPair()
.withHashKey(value)
.withRangeKey(entry.getKey())))
.collect(Collectors.toList());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.