gpt4 book ai didi

java - 使用 java 8 Streams 对项目列表进行分组,并使用第一个项目而不是列表填充生成的 map

转载 作者:搜寻专家 更新时间:2023-10-31 19:59:56 28 4
gpt4 key购买 nike

我有一个由以下类定义的项目:

public class Item {
private int id;
private float price;
}

我得到了一个项目列表,我需要按 id 对它们进行分组。分组后,我知道 List 将只包含每个 id 的单个值,因此我希望生成的 Map 定义如下:

Map<Integer, Item>

而不是:

Map<Integer, List<Item>>

这样做的好处是,我的调用代码不需要执行额外的取消引用:

mapName.get(id).get(0)

以下代码将按 id 对项目进行分组并创建一个包含列表的 map :

Map<Integer, List<Item>> itemsMap = itemList.stream()
.collect(Collectors.groupingBy(Item::getId));

在 Java 8 中有没有办法实现我想要的结果?

最佳答案

您可以使用: Map<Integer, Item> itemsMap = items.stream().collect(Collectors.toMap(Item::getId, Function.<Item>identity()));

关于java - 使用 java 8 Streams 对项目列表进行分组,并使用第一个项目而不是列表填充生成的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46341993/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com