相关疑难解决方法(0)

Java 8 Stream - .max()带有重复项

所以我有一组对象,它们的步长变量可以是1到4.

public class MyClass {
    private Long step;

    //other variables, getters, setters, etc.
}
Run Code Online (Sandbox Code Playgroud)

Collection<MyClass> myOjbects = /*get collection*/;

然后我想MyClass从集合中获得具有最大步长值的一个实例,所以我这样做:

final Optional<MyClass> objectWithMaxStep =
   myObjects.stream().max(Comparator.comparing(MyClass::getStep));
Run Code Online (Sandbox Code Playgroud)

但是,在某些情况MyClass下,集合中将有多个实例,其步长等于4.

所以,我的问题是,如何确定返回哪个实例Optional,或者当流中的多个对象具有要比较的最大值时是否抛出异常?

max()函数的Java 8文档未指定在这种情况下将发生的情况.

java java-8 java-stream

21
推荐指数
2
解决办法
5781
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1