Вы можете использовать потоки, которые сделают это за вас.
Например:
maxLengthNickname = mentorList
.stream()
.mapToInt(mentor -> mentor.getNickname().getLength())
.max();
Однако недостатком является то, что как в вашем примере, так и в этом случае вы будете повторять один и тот же цикл несколько раз.
Возможно, имеет больше смысла сделать один цикл и сделать их все внутри.
Смотрите на ответы на этот вопрос .
В основном, Вы хотите преобразовать цвета во что-то позвонившее пространство Лаборатории и найти их среднее число в том пространстве.
пространство Лаборатории является способом представить цвета, где точки, которые являются друг близко к другу, являются теми, которые выглядят подобными друг другу людям.
Усреднение в цветовое пространство HSL могло бы привести к лучшим результатам.
Я не знаю, является ли взятие простого среднего числа компонентов "лучшим" с перцептивной точки зрения (который походит на вопрос для психолога), но вот несколько примеров с помощью простого усреднения компонента.
red-mustard-green каждый ужасен, но интерполяция кажется достаточно разумной.
Да. Можно насчитать два цвета вместе как этот. Это - подход, привыкший OpenGL к совмещенным цветам вместе (например, в создании mip карты для рендеринга удаленных объектов или рендеринга 50%-й прозрачной структуры). Это быстро, просто, и "достаточно хорошо" для многих ситуаций. Это не абсолютно реалистично, однако, и вероятно не использовалось бы на изображениях качества фотографии.