С "ё" разобрался, вывод совпадает с реальностью. Есть подозрения, что здесь ошибка:
for (String str : list) {
                if (str.contains(l.toString())) {
                    i++;
                    map.put(l, i);
                }
Если прав, подскажите, в чем ошибка. Если нет, то все равно подскажите, в чем :D