Думал дело в некорректности сравнения - пробовал парсить все в BigDecimal или через отдельный метод - нагородил только, но все равно не прошло. вернул как было. Может, просто глаз замылился )
package com.javarush.task.task19.task1920;
/*
Самый богатый
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
List<String> lines = new ArrayList<>();
while (reader.ready()) {
lines.add(reader.readLine());
}
reader.close();
Map<String, Double> result = new HashMap<>();
double max = 0.0;
for (int i = 0; i < lines.size(); i++) {
String name = lines.get(i).split(" ")[0];
double d = Double.parseDouble(lines.get(i).split(" ")[1]);
for (int j = i + 1; j < lines.size(); j++) {
String findName = lines.get(j).split(" ")[0];
if (name.equals(findName)) {
d += Double.parseDouble(lines.get(j).split(" ")[1]);
}
}
if (!result.containsKey(name)) result.put(name, d);
if (d > max) max = d;
}
List<String> names = new ArrayList<>();
for (Map.Entry<String, Double> pair : result.entrySet()) {
if (Math.abs(pair.getValue() - max) <= 0.0000000001) {
names.add(pair.getKey());
}
}
Collections.sort(names);
for (String s : names) {
System.out.println(s);
}
}
}