Как заставить max возвращать ВСЕ максимальные значения в Java Stream?JAVA

Программисты JAVA общаются здесь
Anonymous
Как заставить max возвращать ВСЕ максимальные значения в Java Stream?

Сообщение Anonymous »

Я немного протестировал функцию 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

Вернуться в «JAVA»