Java 8:将2个字符串列表合并到Map中

时间:2017-10-22 12:11:28

标签: java list java-8 hashmap java-stream

我有以下内容:

List<String> keys
List<String> values

我想使用Java 8 Streams将这两个列表映射到Map<String, String>。这些列表具有相同的大小,并以相同的方式排序。

我尝试使用以下

来映射这两个
Map<String, String> result= keys.stream().
        collect(Collectors.toMap(keys::get, values::get));

但这根本不起作用 - 我怎么能这样做呢? 在此先感谢:)

1 个答案:

答案 0 :(得分:7)

您可以使用List迭代IntStream s的索引:

Map<String, String> result =
    IntStream.range(0,keys.size())
             .boxed()
             .collect(Collectors.toMap(i -> keys.get(i), i -> values.get(i)));