簡體   English   中英

使用 java 8 中的列表值迭代 map

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM