与流映射的 Java 8 列表

标签 java dictionary collections java-8 java-stream

我有一个 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/

相关文章:

c# - 什么情况下 ConcurrentBag.TryTake() 会失败?

java - 如何一次性从Set中获取数据

java - maven-dependency-plugin 不能排除测试范围依赖

java - 错误表明程序找不到 hexa2 和 hexa4 的符号

python - 为什么 ArgumentParser 返回命名空间而不是字典?

c# - 如何从字典对象中获取值?

java - 带有实体键和实体值的 JPA 映射

java - 在 Java 中将 Set<Integer> 转换为 Set<String>

java - 比较<? super T> 与 Comparable<T>

python - 使用嵌套循环时索引 i 超出数组范围