Тестирую с:
Петров 2
Сидоров 5.1
Иванов 1.35
Петров 3.1
Вывод:
Петров
Сидоровpackage com.javarush.task.task19.task1920;
/*
Самый богатый
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class Solution {
public static void main(String[] args) throws IOException {
String file = args[0];
BufferedReader reader = new BufferedReader(new FileReader(file));
Map<String, Double> map = new HashMap<>();
Double maxSum = Double.MIN_VALUE;
while (reader.ready()) {
String[] line = reader.readLine().split(" ");
if (map.containsKey(line[0])) {
map.put(line[0],map.get(line[0]) + Double.parseDouble(line[1]));
if (maxSum <= map.get(line[0]) + Double.parseDouble(line[1])) {
maxSum = map.get(line[0]);
}
} else {
map.put(line[0], Double.parseDouble(line[1]));
}
}
reader.close();
TreeMap<String, Double> sorted = new TreeMap<>();
sorted.putAll(map);
for (Map.Entry<String, Double> entry : sorted.entrySet()) {
if (isEqual(entry.getValue(), maxSum)) {
System.out.print(entry.getKey() + " ");
}
}
}
public static boolean isEqual(double x, double y){
return Math.abs(x-y) < 0.00001;
}
}