Преобразование Arraylist в map с помощью Stream API

Как мне преобразовать Arraylist в мап, чтобы четные элементы были ключами, а нечетные - значениями!?

ArrayList list = new ArrayList<>(); Collections.addAll(list,2,3,4,5);

Map<Integer,Integer> result = list.stream().collect(Collectors.toMap(??????????));


Ответы (1 шт):

Автор решения: Ihar Hulevich

Если использовать IntStream то можно преобразовать в

List<Integer> list = List.of(2, 3, 4, 5);

Map<Integer, Integer> result = IntStream
    .iterate(0, i -> i < list.size(), i -> i + 2)
    .boxed()
    .collect(Collectors.toMap(list::get, i -> list.get(i + 1), (a, b) -> b));
→ Ссылка