Я получил поток некоторых пользовательских объектов, и я хотел бы создать карту Map<Integer, MyObject>
с индексом каждого объекта в качестве ключа. Чтобы дать вам простой пример:
Stream<String> myStream = Arrays.asList("one","two","three").stream();
Integer i = 0;
Map<Integer, String> result3 = myStream.collect(Collectors.toMap(x -> i++, x -> x));
Очевидно, это не компилируется, потому что:
локальные переменные, на которые ссылается лямбда-выражение, должны быть окончательными или эффективно окончательный
Есть ли простой способ сопоставить элементы потока с их индексами, чтобы ожидаемый результат для приведенного выше примера был примерно таким:
{1=one, 2=two, 3=three}