for(int i=0; i<list.size(); i++) {
int j = list.get(i);
list.remove(i);
if (list.contains(j)) {
max.add(j);
}
}
set.addAll(max);
max.clear();
max.addAll(set);
Что не правильного в этой проверке?
Перелистываем коллекцию, каждый элемент присваиваем переменной, удаляем его из коллекции, проверяем на повтор, если да - добавляем в другую коллекцию, затем в конечной коллекции мы убираем повторы перегнав в set и обратно в list.
package com.javarush.task.task18.task1803;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
/*
Самые частые байты
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
List<Integer> list = new ArrayList<>();
List<Integer> max = new ArrayList<>();
HashSet<Integer> set = new HashSet<>();
try {
FileInputStream fs = new FileInputStream(r.readLine());
while(fs.available() > 0) {
list.add(fs.read());
}
fs.close();
for(int i=0; i<list.size(); i++) {
int j = list.get(i);
list.remove(i);
if (list.contains(j)) {
max.add(j);
}
}
set.addAll(max);
max.clear();
max.addAll(set);
for(int n : max) { System.out.print(n + " "); }
} catch (FileNotFoundException e) {
System.out.println("Файл не найден!");
}
}
}