TreeMap загоняет букву 'ё' в конец вывода , незнаю, как можно ее поставить на место после е. LinkedHashMap все делает в разброс все буквы в выводе.
package com.javarush.task.task10.task1012;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import java.util.HashMap;
import java.util.*;
import java.text.Collator;
/*
Количество букв
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// Алфавит
List<Character> alphabet = Arrays.asList(
'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж',
'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о',
'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц',
'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я');
// Ввод строк
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
String s = reader.readLine();
list.add(s.toLowerCase());
}
// напишите тут ваш код
//
TreeMap<Character,Integer> all_char = new TreeMap<Character,Integer>();
// по каждой введенной строке
for(int i=0;i<list.size();i++){
// каждое слово в массив символов
char[] chars = (list.get(i)).toCharArray();
// массив символов проход по нему
for(int k=0;k<chars.length;k++){
// алфавит
for(int j=0;j<alphabet.size();j++){
// сравнение алфавита и символов
if(chars[k]==alphabet.get(j)){
// ключ есть в общей мэпе?
if(all_char.containsKey(chars[k])){
// значение увеличивается этого ключа
all_char.put(chars[k],all_char.get(chars[k])+1);
} else
// запись в мэп, новый ключ, значение 1
all_char.put(chars[k],1);
}
}
}
}
// прохожу по остатку алфавита добавляя в мэп
for(int g=0;g<alphabet.size();g++){
if(all_char.containsKey(alphabet.get(g))){
continue;
// }else if(all_char.containsKey(alphabet.get('ё'))){
}else
all_char.put(alphabet.get(g),0);
}
for(Map.Entry<Character,Integer> pair: all_char.entrySet()){
System.out.println(pair.getKey()+" "+pair.getValue());
}
}
}