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

时间:2017-10-13 22:53:48

标签: java java-8 hashmap java-stream

我有名单

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

现在,我可以将此List转换为Map,其中我获得了ford = focus,Toyota = yaris,Nisan = Micra,Honda =使用Java 8 Streams API的Civic?

1 个答案:

答案 0 :(得分:3)

这是一个如何做到这一点的例子:

 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个元素并将其映射到下一个元素。
请注意,如果元素数不均匀,则不会考虑最后一个元素。