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

Rem*_*emo 3 java list hashmap java-8 java-stream

我有以下内容:

List<String> keys
List<String> values
Run Code Online (Sandbox Code Playgroud)

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

我尝试用以下方法映射这两个

Map<String, String> result= keys.stream().
        collect(Collectors.toMap(keys::get, values::get));
Run Code Online (Sandbox Code Playgroud)

但这根本不起作用 - 我怎么能这样做呢?提前致谢 :)

Era*_*ran 8

您可以使用以下内容迭代Lists 的索引IntStream:

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

  • 或者`toMap(keys :: get,values :: get)` (5认同)