С латиницей тесты проходят, т.е. порядок следования пар соответствует алфавитному по возрастанию имен.
package com.javarush.task.task19.task1919;
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
String k;
Double d;
Map<String, Double> map = new TreeMap<>();
while (reader.ready()) {
String line = reader.readLine();
k = line.substring(0, line.indexOf(" "));
d = 0.0;
map.put(k, d);
}
reader.close();
BufferedReader reader2 = new BufferedReader(new FileReader(args[0]));
while (reader2.ready()) {
String line = reader2.readLine();
k = line.substring(0, line.indexOf(" "));
d = Double.parseDouble(line.substring(line.indexOf(" "), line.length()));
for (Map.Entry entry : map.entrySet()) {
if (entry.getKey().equals(k)) {
entry.setValue((Double) (entry.getValue()) + d);
}
}
}
reader2.close();
//System.out.println(map);
}
}