что я делаю не так? у других смотрю все записывают в массив байтов где длина 255, при этом каждый номер индекса приравнен к байту символа... но ведь в файле могут быть символы которые больше длины 255. С этим соображением я применил HashMap. Где каждый символ будет ключом а значение его количество в тексте. Остальные подходы вроде такие же как у многих. Но наткнулся на ошибку. И не могу понять где я развернул не туда? Прошу экспертов подсказать по полочкам. Заранее спасибо
package com.javarush.task.task18.task1823;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
Нити и байты
*/
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));
List<String> lists = new ArrayList<>();
while (true) {
String s = reader.readLine();
if (s.equals("exit"))
break;
lists.add(s);
}
for (String list : lists
) {
ReadThread readThread = new ReadThread(list);
readThread.start();
}
reader.close();
}
public static class ReadThread extends Thread {
String fileName;
public ReadThread(String fileName) {
//implement constructor body
this.fileName = fileName;
}
// implement file reading here - реализуйте чтение из файла тут
@Override
public void run() {
List<Integer> bytes = new ArrayList<Integer>();
HashMap<Integer, Integer> hashMap = new HashMap<>();
try (FileReader reader = new FileReader(fileName)) {
int maxValue = 0;
int maxKey = 0;
while (reader.ready()) {
int b = reader.read();
if (hashMap.get(b) == null) {
hashMap.put(b, 1);
} else {
int count = hashMap.get(b);
hashMap.put(b, ++count);
}
for (Map.Entry<Integer, Integer> e : hashMap.entrySet()) {
if (e.getValue() > maxValue) {
maxValue = e.getValue();
maxKey = e.getKey();
}
}
//System.out.println(hashMap);
}
resultMap.put(Thread.currentThread().getName(), maxKey);
//System.out.println(fileName + " " + resultMap + ", key: " + maxKey + ", value: " + maxValue);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}