Здравствуйте.
Я написал несколько алгоритмов для заполнения списка resultMap.
Где записывается полный путь и ЮНИКОД символа, который чаще всего встречается.
Где записывается просто название файла, то что перед .txt и сам ЮНИКОД СИМВОЛА.
Я проверил условие и прочитал парочку комментариев и все равно не понимаю, почему валька не пропускает.
Буду готов обсудить все возможные решения, задача реально интересная.
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 line;
while ((line = reader.readLine()) != null){
if(line.equals("exit"))
return;
ReadThread readThread = new ReadThread(line);
readThread.start();
}
reader.close();
}
public static class ReadThread extends Thread {
private String fileRead;
public ReadThread(String fileName) throws FileNotFoundException {
fileRead = fileName;
}
@Override
public void run() {
try {
TreeSet<Integer> treeSet = new TreeSet<>();
ArrayList<Integer> arrayList = new ArrayList<>();
ArrayList<Integer> arrayList1 = new ArrayList<>();
FileReader fileReader = new FileReader(fileRead);
while (fileReader.ready()){
arrayList.add(fileReader.read());
}
int count = 0;
int maxCount = 0;
treeSet.addAll(arrayList);
for (Integer element : treeSet){
for (int i = 0; i < arrayList.size(); i++) {
if(element.equals(arrayList.get(i))) {
count++;
System.out.println(count);
}
}
if(maxCount<count) {
maxCount = count;
arrayList1.add(element);
count = 0;
}
}
Integer max = Collections.max(arrayList1);
resultMap.put(fileRead, max);
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}