Задачу уже решил, но хочу спросить почему не работал мой первый вариант кода, который привожу ниже.
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
Map<String, Double> base = new TreeMap<>();
while (reader.ready()){
String [] lineEntry = reader.readLine().split(" ");
base.putIfAbsent(lineEntry[0],0.0);
base.put(lineEntry[0],base.get(lineEntry[0])+Double.parseDouble(lineEntry[1]));
}
reader.close();
for (Map.Entry <String,Double> entry : base.entrySet()){
if (entry.getValue()==Collections.max(base.values())){
System.out.println(entry.getKey());
}
}
}
}
Для проверки скармливал тестовый файлик программе -- программа не работала как надо. В файлике было несколько фамилий, максимум - 67.0, и такое значение было сразу у двух фамилий. И такой код выводил на экран всего одну фамилию (проверил дебагом на второй - и он мне показывал что 67.0==67.0 - false, не знал как реагировать). IntelliJ выделяла желтым мой значок "==", не придавал этому значение. В итоге получилось решить введя переменную THRESHOLD=0.00001 и используя ее для сравнения, но я так понял что надо было сравнивать через equals. Объясните пожалуйста, почему нельзя было сравнивать через "=="?