我有一个 List<Item>
Collection 。
我需要将其转换为 Map<Integer, Item>
映射的键必须是集合中项目的索引。
我无法弄清楚如何使用流来做到这一点。
比如:
items.stream().collect(Collectors.toMap(...));
有什么帮助吗?
由于这个问题被确定为可能重复,我需要补充一点,我的具体问题是 - 如何获取项目在列表中的位置并将其作为键值
最佳答案
您可以使用 IntStream
创建索引的 Stream
,然后将它们转换为 Map
:
Map<Integer,Item> map =
IntStream.range(0,items.size())
.boxed()
.collect(Collectors.toMap (i -> i, i -> items.get(i)));
关于与流映射的 Java 8 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32859038/