Доброго времени суток!
Не понимаю почему задача не проходит валидацию? Отрабатывает всё вроде же как правильно, или нет? Где ошибка подскажите пожалуйста.
TreeSet в своём решении не применял за ненадобностью...
package com.javarush.task.task19.task1920;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.TreeMap;
import java.util.TreeSet;
/*
Самый богатый
*/
public class Solution {
public static void main(String[] args) {
String fileName = args[0];
TreeMap<String, Double> richMansTreeMap = new TreeMap<>();
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
double maxMoney = 0;
while ((line = reader.readLine()) != null) {
String[] splitLine = line.split(" ");
String name = splitLine[0];
double money = Double.parseDouble(splitLine[1]);
richMansTreeMap.merge(name, money, Double::sum);
maxMoney = Math.max(money, richMansTreeMap.get(name));
}
for (String name : richMansTreeMap.keySet()) {
if (richMansTreeMap.get(name).equals(maxMoney)) {
System.out.println(name);
}
}
} catch (IOException ignore) {
/*NOP*/
}
}
}
//Задача (Medium)
// Java Core, 9 уровень, 11 лекция
//
// Самый богатый
//
// В метод main первым параметром приходит имя файла.
// В этом файле каждая строка имеет следующий вид:
// имя значение
// где [имя] - String, [значение] - double. [имя] и [значение] разделены пробелом.
//
// Для каждого имени посчитать сумму всех его значений.
// Вывести в консоль имена в алфавитном порядке, у которых максимальная сумма.
// Имена разделять пробелом либо выводить с новой строки.
// Закрыть потоки.
//
// Пример входного файла:
// Петров 0.501
// Иванов 1.35
// Петров 0.85
//
// Пример вывода:
// Петров
//
// Requirements:
// 1. Программа НЕ должна считывать данные с консоли.
// 2. Программа должна считывать содержимое файла (используй FileReader).
// 3. Поток чтения из файла (FileReader) должен быть закрыт.
// 4. Программа должна выводить в консоль имена, у которых максимальная сумма.