首页 > 解决方案 > 在 Java 中将列表列表转换为 HashTable

问题描述

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

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

[“A”,“B”]

[“A”,“C”]

[“广告”]

[“是”]

我想将其转换为哈希图,例如

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

A B C D

我该怎么做呢?

我有的功能

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

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

标签: javagraphhashmap

解决方案


你可以简单地做:

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

这给出了输出:

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


推荐阅读