【问题标题】:Convert List of Strings into Map using Java-8 Streams API使用 Java-8 Streams API 将字符串列表转换为 Map
【发布时间】:2018-03-26 03:05:02
【问题描述】:

我有清单

List<String> cars = Arrays.asList("Ford", "Focus", "Toyota", "Yaris","Nissan", "Micra", "Honda", "Civic");

现在,我可以使用 Java 8 Streams API 将此列表转换为我得到福特 = 焦点、丰田 = yaris、尼桑 = 米克拉、本田 = 思域的地图吗?

【问题讨论】:

  • @nullpointer 不是真的,这是一个完全不同的问题(将元素映射在一起与将元素映射到其他东西)

标签: java java-8 hashmap java-stream


【解决方案1】:

这是一个关于如何做到这一点的示例:

 Map<String, String> carsMap =
            IntStream.iterate(0, i -> i + 2).limit(cars.size() / 2)
                    .boxed()
                    .collect(Collectors.toMap(i -> cars.get(i), i -> cars.get(i + 1)));

基本上,只需遍历每 2 个元素并将其映射到下一个元素。
注意,如果元素个数不偶数,则不会考虑最后一个元素。

【讨论】:

  • 非常感谢保罗的帮助。我用@nullpointer 建议的解决方案尝试了我的问题。但对于那些对 lambda 工作原理知之甚少的人来说,这是一种混淆方式。我的问题与之前在这里提出的类似问题完全不同。此外,我不希望得到我的问题的答案,因为我发现这里的版主非常专横和欺负。但你救了我的命。再次感谢。 :)
  • @meticulous_guy :)
猜你喜欢
  • 2016-10-31
  • 2016-11-16
  • 1970-01-01
  • 2015-10-20
  • 2018-04-27
  • 2021-06-22
  • 1970-01-01
  • 2015-04-30
  • 2019-11-26
相关资源
最近更新 更多