我已经max
对Java 8 lambda和流上的功能进行了一些测试,并且似乎在万一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.
我将按值分组并将值存储到TreeMap
中,以便对值进行排序,然后通过获取下一个最后一个条目来获得最大值:
Stream.of(1, 3, 5, 3, 2, 3, 5)
.collect(groupingBy(Function.identity(), TreeMap::new, toList()))
.lastEntry()
.getValue()
.forEach(System.out::println);
输出:
5
5
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句