首页 > 解决方案 > Java 8:如何从两个字符串列表中创建映射

问题描述

我有两个清单:

List<String> ids
List<String> names

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

标签: listjava-8

解决方案


假设两个列表的大小相同,并且 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));

推荐阅读