php小编草莓在这篇文章中将为大家介绍lamba函数在java的groupingby方法中所起的作用。groupingby是通过collectors接口实现的一个用于分组的方法。然而,lamba函数在该方法中并不起作用。接下来,我们将详细说明为什么lamba函数无法在groupingby方法中使用,并提供一些替代方案。让我们一起来探索吧!
我创建了第一个地图,其中键是体育课程的字符串槽,值是每个槽的参与者数量。现在我想创建第二个地图,其键和值基本上颠倒,因此键将是参与者的数量,值将是具有该参与者数量的插槽列表。我编写了这段代码,但我不知道为什么它在第二个 java 流中抱怨我的 lambda 函数...我真的花了一个小时思考它,我真的很感激任何帮助!提前致谢,这是代码:
public SortedMap<Integer, List<String>> slotsPerNofParticipants(String gymnname) throws FitException{
// map with key = Slot value = number of participants for the slot
Map<String, Long> map = this.reservationsColl.stream().filter(r->r.getGym().getName().equals(gymnname))
.collect(Collectors.groupingBy(r->r.getDayslotStringFormat(),
Collectors.counting() ));
// map with key = number of participants value = list of slot with that number of participants
Map<Integer,List<String>> res = map.entrySet().stream()
.collect(Collectors.groupingBy(
e->e.getValue.intValue(),
Collectors.mapping(e->e.getKey, Collectors.toList() ) ) );
return null;
}正如你所看到的,我尝试使用 lambda 函数将第一个映射(长整型)的值转换为整数类型键...我不知道为什么它抱怨 lambda 函数... 错误消息是: “getkey 无法解析或不是字段” “getvalue 无法解析或不是字段”
这里有一个问题。你有一些错别字。
getvalue 应该是 getvalue()
getkey 应该是 getkey()
未更正代码
Map<Integer,List<String>> res = map.entrySet().stream()
.collect(Collectors.groupingBy(
e->e.getValue.intValue(),
Collectors.mapping(e->e.getKey, Collectors.toList() ) ) );由对象引起的任何其他问题应包括类的声明和一些示例数据。
立即学习“Java免费学习笔记(深入)”;
应包括输入和预期输出。
以上就是Lamba 函数在 java groupingBy 方法(通过 Collectors 接口)中不起作用的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号