簡體   English   中英

如何在Java 8中將列表的哈希圖轉換為單個列表?

[英]how to convert a hashmap of list into a single list in Java 8?

我是Java 8的新手,我對如何進行操作還不清楚。 我在Java 7中有一個Map <String, List<value>> ,我只會在鍵上使用for循環並將List收集到一個列表中。

但是,我希望能夠在8中做到這一點。我所擁有的是:

List<Value> newList = resultMap.entrySet().stream()
                       .flatMap( e -> e.getValue().stream())
                       .map( // get the value in the list)
                       .collect(Collectors.toList())

但是,在這種情況下,我將無法從哈希映射中知道該值所屬的鍵。

執行上述操作時,如何獲取hashmap的鍵值?

您可以執行以下操作:

Map<Key, List<Value>> map = ...;

List<Map.Entry<Key, Value>> list =
    map.entrySet()
        .stream()
        .flatMap(e -> {
          return e.getValue().stream()
              .map(v -> new AbstractMap.SimpleEntry<>(e.getKey(), v));
        })
        .collect(Collectors.toList());

這將為每個子列表中的每個值創建一個條目,其中鍵是該值來自的列表的對應鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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