Java 8:如何从两个字符串列表中创建映射

时间:2018-11-06 17:34:30

标签: list java-8

我有两个列表:

List<String> ids
List<String> names

任务是从这两个列表中创建一个Map<String,String>,最好使用Java 8。 不幸的是,当我们有String类型的列表时,我没找到怎么做的。

1 个答案:

答案 0 :(得分:0)

假设两个列表的大小相同,并且id是唯一的,并且id是地图的键,并且名称是对应的值,则可以使用以下代码创建地图:

Map<String,String> idsNames = IntStream.range(0,ids.size())
        .mapToObj(i -> new AbstractMap.SimpleEntry<>(ids.get(i),names.get(i)))
        .collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey,
                AbstractMap.SimpleEntry::getValue));