Итак, у меня есть набор объектов с переменной шага, которая может быть 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));
Однако существуют ситуации, когда в коллекции будет несколько экземпляров MyClass
, которые имеют шаг, равный 4.
Итак, мой вопрос: как определить, какой экземпляр возвращается в Optional
, или он генерирует исключение, когда несколько объектов в потоке сравниваются с максимальным значением?
Документация Java 8 для функции max()
не указывает, что произойдет в этой ситуации.