Вроде всё написано нормально, но никак не могу найти ошибку в логике. Помогите, пожалуйста..
package com.javarush.task.task18.task1803;
import java.io.*;
import java.util.*;
/*
Самые частые байты
*/
public class Solution {
public static void main(String[] args) throws Exception {
ArrayList<Integer> list = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
FileInputStream inputStream = new FileInputStream(fileName);
while(inputStream.available()>0){
list.add(inputStream.read());
}
inputStream.close();
Collections.sort(list);
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Map<Integer, Integer> result = new HashMap<Integer, Integer>();
int key = list.get(0);
int i = 0;
while(!list.isEmpty()){
int num = list.get(0);
int count = 1;
while(true){
list.remove(0);
if(!list.isEmpty() && list.get(0)==num){
count++;
list.remove(0);
}else break;
}
map.put(num, count);
}//есть map с байтами и количеством
int max = map.get(key);//первый элемент Value
result.put(key, max);
for(Map.Entry<Integer, Integer> pair : map.entrySet()){
Integer thisKey = pair.getKey();
Integer thisValue = pair.getValue();
if(thisValue > max)
{
max = thisValue;
key = thisKey;
result.clear();
result.put(key, max);
}else if(thisValue == max){
result.put(thisKey, thisValue);
}
}
for(Map.Entry<Integer, Integer> pair : result.entrySet()){
System.out.print(pair.getKey() + " " + pair.getValue() + " ");
}
}
}