Добрый день ..или что там у вас ..
Вроде как задача не сложная и , по-моему, выводится то, что просят вывести, но, подозреваю, что смысл , который хотели заложить уважаемые менторы немного другой ..либо это снова валидатор.
Пример ввода и вывода в условии задачи не согласуются между собой, то вводит , как мне кажется , решающих в некое заблуждение.
package com.javarush.task.task18.task1821;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
/*
Встречаемость символов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//Создаем лист и заполняем его считанными значениями представляющие символы.
List<Integer> newList = new ArrayList<>();
try (BufferedReader newBR = new BufferedReader(new FileReader(args[0]))) {
while (newBR.ready()) newList.add(newBR.read());
}
/*Сортируем его в возрастающем порядке*/
Collections.sort(newList);
/* Выводим в консоль только те символы, которые встречаются больше чем 1 раз в файле,
и рядом выводим насколько часто они встречаются в файле.*/
for (Integer a : newList) {
if (Collections.frequency(newList, a) != 1)
System.out.println((char) a.intValue() + " " + Collections.frequency(newList, a));
}
}
}