@meticulous_guy :)

я есть список

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

Теперь я могу преобразовать этот список в карту, где я получаю ford = focus, Toyota = yaris, Nisan = Micra, Honda = Civic, используя Java 8 Streams API?

 Naman14 окт. 2017 г., 03:34
Возможный дубликатСписок Java 8 <V> на карту <K, V>
 Paul Lemarchand14 окт. 2017 г., 03:43
@nullpointer не совсем, это совершенно другая проблема (сопоставление элементов и сопоставление элементов с чем-то еще)

Ответы на вопрос(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 элемента и сопоставляет их со следующим.
Обратите внимание, что если количество элементов не является четным, оно не будет учитывать последний элемент.

 meticulous_guy14 окт. 2017 г., 17:09
Большое спасибо, Пол за помощь. Я попытался решить проблему, предложенную @nullpointer. Но это сбивает с толку людей, которые меньше знают о том, как работает лямбда. И моя проблема полностью отличается от аналогичных вопросов, которые задавались здесь раньше. Более того, я не надеялся получить ответ на свой вопрос, так как нахожу здесь модераторов чрезвычайно властными и хулиганскими. Но ты спас мне жизнь. Еще раз спасибо. :)
 Paul Lemarchand14 окт. 2017 г., 20:58
@meticulous_guy :)

Ваш ответ на вопрос