Задать вопрос
@Nikita07

Как работает Comparator.comparing в Java?

Всем привет, помогите пожалуйста разобраться, что делает следующая строка?
.sorted(Comparator.comparing(Matcher::getSourceFileName).thenComparingLong(Matcher::getSourceFileLineNumber))


Код полностью
getAllMatchers()
            .stream()
            .sorted(Comparator.comparing(Matcher::getSourceFileName).thenComparingLong(Matcher::getSourceFileLineNumber))
            .forEach(matcher -> {
                MatcherImpact matcherImpact = new MatcherImpact();
                matcherImpact.name = matcher.getMatcherSourceLocation();
                impactOverview.put(matcher.getMatcherSourceLocation(), matcherImpact);
                impactList.add(matcherImpact);
            });


Для справки
getSourceFileName - это string,
getSourceFileLineNumber - это int
  • Вопрос задан
  • 660 просмотров
Подписаться 2 Средний 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@romank0
Стрим будет сначала сортироваться в алфавитном порядке по значению, которое возвращает `getSourceFileName`, а потом (т.е. если значения `sourceFileName` одинаковые) будет сортироваться по значению `getSourceFileLineNumber`.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы