Задачу уже решил, но хочу спросить почему не работал мой первый вариант кода, который привожу ниже.
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. Объясните пожалуйста, почему нельзя было сравнивать через "=="?