/
cod43
/
home_tasks
Обзор
Документация
Войти
/
cod43
/
home_tasks
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/task4/CollectorsUtility.java
36 строк
2 KB
cod43
first_commit
29 июл 2025, 19:46
29 июл 2025, 19:46
c3aa089
Код
Авторство
О чём код?
package task4; import java.util.ArrayList; import java.util.Comparator; import java.util.stream.Collector; public class CollectorsUtility { private CollectorsUtility() {} /** Коллектор, который находит все максимальные значения с использованием компаратора */ public static <T> Collector<T, ?, ArrayList<T>> findAllMaxValues(Comparator<T> comparator) { return Collector.of( // функция, которая создаёт объект для коллектора ArrayList<T>::new, // функция, которая добавляет текущее значение в список, если он является максимальным (lst, value) -> { if (lst.isEmpty()) { lst.add(value); return; } int compareResult = comparator.compare(lst.getFirst(), value); if (compareResult == 0) { // если текущее значение равно элементам списка lst.add(value); } else if (compareResult < 0) { // если текущее значение больше всех элементов списка lst.clear(); lst.add(value); } }, // функция для объединения списков ArrayList (m1, m2) -> { m1.addAll(m2); return m1; } ); } }