Вроде как foreach должен пройти по всем, но выводит только один.
package com.javarush.task.task19.task1920;
/*
Самый богатый
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class Solution {
public static void main(String[] args) throws IOException {
// BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// String fileName = reader.readLine();
BufferedReader fileReader = new BufferedReader(new FileReader(args[0]));
Map<String,Double> map = new TreeMap<>();
String line;
List<String> lines = new ArrayList<String>();
while ((line = fileReader.readLine()) != null) {
lines.add(line);
}
fileReader.close();
for (String str : lines){
String [] strArr = str.split(" ");
if (map.containsKey(strArr[0])) {
map.put(strArr[0], map.get(strArr[0]) +Double.parseDouble(strArr[1]));
}else map.put(strArr[0],Double.parseDouble(strArr[1]));
}
for (Map.Entry<String,Double> keys : map.entrySet()){
System.out.println(keys.getKey()+" "+keys.getValue());
}
Double maxSel=0.0;
for (Map.Entry<String,Double> keys1 : map.entrySet()){
if(keys1.getValue()>maxSel){
maxSel=keys1.getValue();
}
}
List<String> listMax = new ArrayList<>();
for (Map.Entry<String,Double> keys2 : map.entrySet()){
if(keys2.getValue().equals(maxSel)) {
listMax.add(keys2.getKey());
}
}
System.out.println(listMax);
for(String str : listMax){
System.out.println(str);
}
}
}