А treemap автоматически же сортирует.
package com.javarush.task.task18.task1821;
/*
Встречаемость символов
*/
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class Solution {
public static void main(String[] args) throws FileNotFoundException {
ArrayList<String> strings = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(
new FileInputStream(args[0]), StandardCharsets.UTF_8))) {
String line;
while ((line = reader.readLine()) != null) {
strings.add(line);
}
} catch (IOException e) {
}
TreeMap<Character,Integer> stringHashMap = new TreeMap();
for (String s:strings
) {
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
stringHashMap.put(chars[i],0);
}
}
for (String s:strings
) {
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
for (Map.Entry<Character,Integer> enb: stringHashMap.entrySet()
) {
if (enb.getKey().equals(chars[i]))
enb.setValue(enb.getValue()+1);
}
}
}
for (Map.Entry<Character,Integer> enb: stringHashMap.entrySet()
) {
System.out.println(enb.getKey()+" "+enb.getValue());
}
}
}