Java 8 流 - .max() 与重复项
2022-09-01 20:55:57
因此,我有一个对象集合,其步骤变量可以是 1 - 4。
public class MyClass {
private Long step;
//other variables, getters, setters, etc.
}
Collection<MyClass> myOjbects = /*get collection*/;
然后,我想从集合中获取一个具有最大步长值的实例,因此我这样做:MyClass
final Optional<MyClass> objectWithMaxStep =
myObjects.stream().max(Comparator.comparing(MyClass::getStep));
但是,在某些情况下,集合中将有多个实例的步长等于 4。MyClass
因此,我的问题是,如何确定在 中返回哪个实例,或者当流中的多个对象具有正在比较的最大值时,它是否会引发异常?Optional
该函数的 Java 8 文档未指定在此情况下将发生的情况。max()