gpt4 book ai didi

java - groupingBy 在应该使用 String 时将键的对象作为 Map 返回

转载 作者:行者123 更新时间:2023-11-29 06:56:49 25 4
gpt4 key购买 nike

假设我有一个品牌对象列表。 POJO 包含一个返回字符串的 getName()。我想建立一个 Map<String, Brand>字符串是名称...但我希望 key 不区分大小写

如何使用 Java 流来完成这项工作?尝试:

brands.stream().collect(Collectors.groupingBy(brand -> brand.getName().toLowerCase()));

不起作用,我认为这是因为我没有正确使用 groupBy。

最佳答案

Collect结果变成了case insensitive map

Map<String, Brand> map = brands
.stream()
.collect(
Collectors.toMap(
Brand::getName, // the key
Function.identity(), // the value
(first, second) -> first, // how to handle duplicates
() -> new TreeMap<String, Brand>(String.CASE_INSENSITIVE_ORDER))); // supply the map implementation

Collectors#groupBy在这里不起作用,因为它返回 Map<KeyType, List<ValueType>> , 但你不想要 List作为一个值,你只需要一个 Brand ,据我了解。

关于java - groupingBy 在应该使用 String 时将键的对象作为 Map 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32891490/

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