【发布时间】:2015-06-02 18:31:08
【问题描述】:
我在 Java 8 lambdas 和流上测试了 max 函数,似乎在执行 max 的情况下,即使多个对象与 0 比较,它也会返回并列候选人,无需进一步考虑。
对于这种最大预期行为是否有明显的技巧或功能,以便返回所有最大值?我在 API 中看不到任何内容,但我确信它一定存在比手动比较更好的东西。
例如:
// myComparator is an IntegerComparator
Stream.of(1, 3, 5, 3, 2, 3, 5)
.max(myComparator)
.forEach(System.out::println);
// Would print 5, 5 in any order.
【问题讨论】:
-
您究竟希望这个
max方法返回什么?HashSet? -
哈希集或链接更多操作的方法,就好像它是一个过滤器一样,具有绑定的最大值
-
您的说法不正确。如果流是有序的(例如从数组或列表中得到的流),它会返回在多个最大元素的情况下最大的 first 元素;只有当流是无序的时,它才允许选择任意元素。
-
谢谢你的意思,我没想到
标签: java collections lambda java-8 java-stream