使用Java-8 Streams API将字符串列表转换为映射

使用Java-8 Streams API将字符串列表转换为映射,java,java-8,hashmap,java-stream,Java,Java 8,Hashmap,Java Stream,我有一张单子 List<String> cars = Arrays.asList("Ford", "Focus", "Toyota", "Yaris","Nissan", "Micra", "Honda", "Civic"); List cars=Arrays.asList(“福特”、“福克斯”、“丰田”、“雅力士”、“日产”、“迈卡拉”、“本田”、“思域”); 现在,我可以将此列表转换为地图,在地图中使用Java 8 Streams API获得ford=focus、Toyota

我有一张单子

List<String> cars = Arrays.asList("Ford", "Focus", "Toyota", "Yaris","Nissan", "Micra", "Honda", "Civic");
List cars=Arrays.asList(“福特”、“福克斯”、“丰田”、“雅力士”、“日产”、“迈卡拉”、“本田”、“思域”);

现在,我可以将此列表转换为地图,在地图中使用Java 8 Streams API获得ford=focus、Toyota=yaris、Nisan=Micra、Honda=Civic吗?

以下是一个示例:

 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)));
Map 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不是真的,这是一个完全不同的问题(将元素映射到一起与将元素映射到其他东西)非常感谢Paul的帮助。我用@nullpointer建议的解决方案尝试了我的问题。但对于不太了解lambda如何工作的人来说,这是一种令人困惑的方式。我的问题与之前在这里提出的类似问题完全不同。此外,我不希望得到我的问题的答案,因为我发现这里的主持人非常专横和霸道。但你救了我的命。再次感谢。:)@(男:)