Здравствуйте, увидела у кого-то код и теперь не могу найти того человека. Объясните, пожалуйста, каким образом здесь сортируются зарплаты по возрастанию?
try (BufferedReader fileReader = new BufferedReader(new FileReader(args[0]))) {
fileReader.lines()
.map(line -> line.split(" "))
.collect(Collectors.toMap(s -> s[0], s -> Double.parseDouble(s[1]), Double::sum, TreeMap::new))
.forEach((k, v) -> System.out.println(k + " " + v));
}
Татьяна
30 уровень
Объясните код
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
22 декабря 2025, 01:58
Ну смотри, что тут вообще происходит. У fileReader вызывается метод lines() я хз что именно он делает, но предоложим, что оно возвращает поток строк. Ты их разбиваешь по пробелу, что вероятно преобразует строку в массив, и собираешь в Tree map - т.е словарь где ключи отсортированы. В качестве ключа выступает часть строки до первого пробела в качестве значения сложнее. подозреваю это агрегрированная сумма значений для уникального ключа.
Ну а дальше всё просто, для полученной мапы делается вывод ключ - значение.
+1
Татьяна
22 декабря 2025, 19:11
спасибо за объяснение!
0
safelogj Android Developer
21 декабря 2025, 16:38
тут зарплаты не сортируются по возрастанию, TreeMap сортирует по ключам
0
Татьяна
22 декабря 2025, 19:10
поняла, спасибо!
0