小编dip*_*ang的帖子

Java 8:同时编写排序,过滤和计数的功能方法

我是Java的新手,我正在尝试以功能性方式编写以下逻辑。

我有一个对象列表,其中有很多字段。List<someObject> 现在感兴趣的领域是long timestampString bookType

问题陈述是-我想找到给定列表中bookType与时间戳最少的对象数量相同的对象数。

例如,如果我们基于timestamp升序对给定的对象列表进行排序,并且排序后的列表中的第一个对象的bookType字段为SOMETYPE;;然后我想找出列表中有多少个对象bookType SOMETYPE

我使用普通的旧非功能性方法编写了此逻辑,方法是维护2个temp变量,然后遍历列表一次,以找到最低值timestamp和相应的bookTypeamd计数bookType

但这不能在lambda中运行,因为它需要将变量 final

我只能写我可以根据给定列表排序的部分 timestamp

n.stream().sorted(Comparator.comparingLong(someObject::timestamp)).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

我被困在如何继续寻找最低计数 timestamp bookType

java functional-programming java-8 java-stream

5
推荐指数
1
解决办法
100
查看次数