gpt4 book ai didi

java - 没有找到适合 List 的 groupingBy 方法

转载 作者:行者123 更新时间:2023-12-01 20:12:24 24 4
gpt4 key购买 nike

给出此代码:

List<String> list1 = Arrays.asList("Collect","Collection","by","Collectors");  
Map<String, Long> map = list1.stream().collect(Collectors.groupingBy(list1::toString, Collectors.counting()));
System.out.println(map);

它告诉我:

error: no suitable method found for groupingBy(list::toString,Collector< Object,CAP#1,Long>)

我知道如果 list1 是一个自定义类,它有 getName 方法并用 list1::getName 替换 list1::toString 它会起作用,但为什么不使用 toString() 呢?

最佳答案

gorupingBy 的关键应该是流的每个元素都有的方法。由于每个元素都是 String,而不是 List,因此无法使用 List::toString。相反,您应该将 toString 应用于该元素。或者由于元素已经是字符串,只需调用 Function.indentity:

Map<String, Long> map = 
list1.stream()
.collect(Collectors.groupingBy
(Function.identity(), Collectors.counting()));

关于java - 没有找到适合 List<String, Integer> 的 groupingBy 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46505317/

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