Вроде данное решение по максимально встречающему байту проходило ранее, подскажите пожалуйста, что я упускаю
package com.javarush.task.task18.task1823;
import java.io.*;
import java.util.*;
/*
Нити и байты
*/
public class Solution {
public static Map<String, Integer> resultMap = new HashMap<String, Integer>();
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name;
while (true) {
name = reader.readLine();
if(!name.equals("exit")){
ReadThread readThread = new ReadThread(name);
readThread.start();
} else {
break;
}
}
}
public static class ReadThread extends Thread {
String filename;
public ReadThread(String fileName) {
//implement constructor body
this.filename=fileName;
}
// implement file reading here - реализуйте чтение из файла тут
public void run () {
HashMap<Integer, Integer> list = new HashMap<>();
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream(filename);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
while (true) {
try {
if (!(inputStream.available()>0)) break;
} catch (IOException e) {
e.printStackTrace();
break;
}
int num = 0;
try {
num = inputStream.read();
} catch (IOException e) {
e.printStackTrace();
}
if (list.containsKey(num)) {
int value = list.get(num);
list.put(num, value + 1);
}
else {
list.put(num,1);
}
}
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
List<Integer> value = new ArrayList<>(list.values());
Collections.sort(value);
Integer max = value.get(list.size()-1); // берем первый элемент списка, это минимальное значение
for (Map.Entry<Integer, Integer> pair : list.entrySet()) {
Integer b = pair.getValue();
if (b.equals(max)) {
resultMap.put(filename, b);
}
}
}
}
}