Задать вопрос
@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
  • Вопрос задан
  • 645 просмотров
Подписаться 2 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@romank0
Стрим будет сначала сортироваться в алфавитном порядке по значению, которое возвращает `getSourceFileName`, а потом (т.е. если значения `sourceFileName` одинаковые) будет сортироваться по значению `getSourceFileLineNumber`.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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