java - 在 Java 中将列表列表转换为哈希表

标签 java graph hashmap

我有一个包含源和目标的列表列表。例如,

public static void main(String[] args) {
 List<Edge> edges = new ArrayList<>();}

[“A”,“B”]

[“A”,“C”]

[“A”,“D”]

[“B”,“E”]

我想将其转换为 HashMap ,例如

HashMap<String,List<String>> map = new HashMap<String,List<String>>();

A:B、C、D

B:E

我该如何去做呢?

我有的功能

static class Edge {
     public String source;
     public String destination;

     public Edge(String source, String destination) {
       this.source = source;
       this.destination = destination;
     }
   }

最佳答案

您可以简单地执行以下操作:

Map<String, List<String>> collMap = edges.stream()
            .collect(Collectors.groupingBy(Edge::getSource, 
                     Collectors.mapping(Edge::getDestination, Collectors.toList())));

给出输出:

{A=[B, C, D], B=[E]}

关于java - 在 Java 中将列表列表转换为哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55265964/

相关文章:

java - 工作条件根据男性和女性的选择而匹配

java - Hadoop:java.lang.Exception:java.lang.NoClassDefFoundError:org/apache/xerces/parsers/AbstractSAXParser

java - 将 Scanner 的输入与 HashMap 的键和值进行比较

java - 在带有 HashMap 的 Java 中使用 Line2D

java - 根据长度将文本文件中的单词分组到 Arraylist

java - 使用 B-Tree 索引 <String, Arraylist<Integer>>

java - 父类(super class)的子方法 (java)

.net - 高效绘制实时波形

algorithm - 遍历加权边时最大化节点权重和

r - R 中的平滑曲线图