【问题标题】:Java 8: Merge 2 String Lists into Map [duplicate]Java 8:将 2 个字符串列表合并到 Map [重复]
【发布时间】:2018-04-03 02:09:39
【问题描述】:

我有以下:

List<String> keys
List<String> values

我想使用 Java 8 Streams 将这两个列表映射到 Map&lt;String, String&gt;。列表大小相同,排序方式相同。

我试图用以下映射这两个

Map<String, String> result= keys.stream().
        collect(Collectors.toMap(keys::get, values::get));

但这根本不起作用 - 我该如何正确地做到这一点? 在此先感谢:)

【问题讨论】:

  • 如果您的列表不是随机访问的(例如,如果它们是链表),您最好不要使用流来执行此操作。

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


【解决方案1】:

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

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

【讨论】:

  • toMap(keys::get, values::get)
猜你喜欢
  • 1970-01-01
  • 2017-06-29
  • 1970-01-01
  • 2016-08-18
  • 2017-02-18
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 1970-01-01
相关资源
最近更新 更多