【发布时间】:2019-08-24 12:59:00
【问题描述】:
我得到一些自定义对象的流,我想创建一个映射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));
显然,这不会编译,因为:
从 lambda 表达式引用的局部变量必须是 final 或 有效地最终
是否有一种简单的方法可以将流的元素映射到它们的索引,以便上述示例的预期输出类似于:
{1=one, 2=two, 3=three}
【问题讨论】:
标签: java java-8 java-stream