Пробовал считывать с файла разные данные. Все суммирует, выводит на экран более одного имени с максимальным значением, сортирует имена по алфавиту. А все равно ошибка вываливается.
Подскажите пожалуйста, что я упускаю?((
package com.javarush.task.task19.task1920;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
/*
Самый богатый
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader file = new BufferedReader(new FileReader(args[0]));
Map<String, Double> listNames = new HashMap<>();
Double maxSum = 0.0;
// read all values from file
while (file.ready()) {
String[] array = file.readLine().split(" ");
if (!listNames.isEmpty()) {
for (Map.Entry<String, Double> human : listNames.entrySet()) {
if (!human.getKey().equals(array[0])) {
listNames.put(array[0], Double.parseDouble(array[1]));
if (human.getValue() > maxSum) maxSum = human.getValue();
break;
} else {
listNames.put(array[0], human.getValue() + Double.parseDouble(array[1]));
if (human.getValue() > maxSum) maxSum = human.getValue();
break;
}
}
} else {
listNames.put(array[0], Double.parseDouble(array[1]));
}
}
List<String> names = new ArrayList<>();
// add to list all names with maximum sum
for (Map.Entry<String, Double> human : listNames.entrySet()) {
if (human.getValue().equals(maxSum)) {
names.add(human.getKey());
}
}
Collections.sort(names);
// sort list by alphabetic and print on screen
for (String name : names) {
System.out.println(name);
}
file.close();
}
}