所以我有一组对象,它们有一个步骤变量,可以是1-4。
public class MyClass {
private Long step;
//other variables, getters, setters, etc.
}
Collection<MyClass> myOjbects = /*获取集合*/;
然后我想从集合中获取一个具有最大步骤值的MyClass
实例,所以我执行以下操作:
final Optional<MyClass> objectWithMaxStep =
myObjects.stream().max(Comparator.comparing(MyClass::getStep));
然而,有些情况下,集合中会有多个步长等于4的MyClass
实例。
我的问题是,在Optional
中返回哪个实例,或者当流中有多个对象具有正在比较的最大值时,它是否会抛出异常?
Java 8文档并没有指定在这种情况下会发生什么。
max()
函数如何工作。 - Andrew Mairosemax()
函数如何确定返回哪个对象感兴趣。我的代码运行良好。我不是在解决问题,而是想理解发生了什么。 - Andrew Mairose