php小编草莓在这篇文章中将为大家介绍lamba函数在java的groupingby方法中所起的作用。groupingby是通过collectors接口实现的一个用于分组的方法。然而,lamba函数在该方法中并不起作用。接下来,我们将详细说明为什么lamba函数无法在groupingby方法中使用,并提供一些替代方案。让我们一起来探索吧!
问题内容
我创建了第一个地图,其中键是体育课程的字符串槽,值是每个槽的参与者数量。现在我想创建第二个地图,其键和值基本上颠倒,因此键将是参与者的数量,值将是具有该参与者数量的插槽列表。我编写了这段代码,但我不知道为什么它在第二个 java 流中抱怨我的 lambda 函数...我真的花了一个小时思考它,我真的很感激任何帮助!提前致谢,这是代码:
public SortedMap> slotsPerNofParticipants(String gymnname) throws FitException{ // map with key = Slot value = number of participants for the slot Map 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 > 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> res = map.entrySet().stream() .collect(Collectors.groupingBy( e->e.getValue.intValue(), Collectors.mapping(e->e.getKey, Collectors.toList() ) ) );
由对象引起的任何其他问题应包括类的声明和一些示例数据。
采用HttpClient向服务器端action请求数据,当然调用服务器端方法获取数据并不止这一种。WebService也可以为我们提供所需数据,那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起。 实现Android与服务器端数据交互,我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,
立即学习“Java免费学习笔记(深入)”;
应包括输入和预期输出。










