Я немного протестировал функцию max на лямбда-выражениях и потоках Java 8, и кажется, что в случае выполнения 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.
Подробнее здесь: https://stackoverflow.com/questions/293 ... ava-stream