假设我有一个品牌对象列表。 POJO 包含返回字符串的 getName()。我想建立一个Map<String, Brand>
出于这个原因,字符串是名称......但我希望密钥是不区分大小写.
如何使用 Java 流来完成这项工作?试:
brands.stream().collect(Collectors.groupingBy(brand -> brand.getName().toLowerCase()));
不起作用,我认为这是因为我没有正确使用 groupBy 。
Collect将结果转化为不区分大小写的映射
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
,据我了解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)