Уже как только не изгалялся, а всё не проходит... :(
Рекомендация ментора: Убедись, что программа выводит в консоль имена в алфавитном порядке, у которых максимальная сумма.
package com.javarush.task.task19.task1920;
/*
Самый богатый
*/
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;
import java.util.TreeMap;
public class Solution {
public static void main(String[] args) throws Exception {
FileReader fr = new FileReader(args[0]);
String s="";
Map<String, Double> maper = new TreeMap<String, Double>();
ArrayList<String> list = new ArrayList<>();
// считываем из ридера
while (fr.ready()){
s+=(char) fr.read();
}
fr.close();
// делим на строки
String[]mass = s.split("\n");
double d;
String names = "";
String name;
// разбиваем на слова и заливаем в сортированный МАР с суммированием з.п.
for (int i=0; i<mass.length;i++){
String [] str = mass[i].split(" ");
name = str[0];
d = Double.parseDouble(str[1]);
if (!names.contains(name)){
maper.put(name, d);
}
else {
for(Map.Entry<String, Double> pair : maper.entrySet()){
if (pair.getKey().equals(name)) {
double sum = pair.getValue() + d;
pair.setValue(sum);
}
}
}
}
// ищем макс. сумму и заливаем все такие имена в лист
Double maxsum = 0.0;
for(Map.Entry<String, Double> pair : maper.entrySet()){
if (pair.getValue()>maxsum) maxsum = pair.getValue();
}
for(Map.Entry<String, Double> pair2 : maper.entrySet()){
if (pair2.getValue().equals(maxsum)){
list.add(pair2.getKey());
}
}
// сортируем и выводим на экран
Collections.sort(list);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}