BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    FileInputStream inputStream = new FileInputStream(reader.readLine());
    ArrayList<Integer> array = new ArrayList<>();
    ArrayList<Integer> arrayfinal = new ArrayList<>();
        while (inputStream.available() > 0)
        { int data = inputStream.read();
            array.add(data);}
        inputStream.close();
int max = Integer.MIN_VALUE;
int c;
for(int i = 0;i<array.size();i++ )
{
    c = 0;
    array.get(i);
for (int j = 0; j<array.size(); j++ )
{
    if(array.get(i).equals(array.get(j)))
    {
        c = c + 1;
    }
}
    if(c>=max)
    {
    max=c;
    }
}
        for(int i = 0;i<array.size();i++ )
        { c = 0;
        array.get(i);
        for (int j = 0; j<array.size(); j++ )
        { if(array.get(i).equals(array.get(j)))
                {
                    c = c + 1;
                }
            }
            if((c==max)&&(!arrayfinal.contains(array.get(i))))
            {
           arrayfinal.add(array.get(i));
            }
        }
        for(int i = 0;i<arrayfinal.size();i++ )

        {System.out.print(arrayfinal.get(i) +" ");}}}
Вопросы за 500 - изначально сравнивал if(array.get(i)==array.get(j)) Долго матерился, почему не работает. Потом сделал так - if(array.get(i).equals(array.get(j))) и все робит. Почему ? Был у меня допустим лист: [208, 161, 67, 208, 161, 67, 208, 161, 67, 208, 161, 67, 208, 161, 67] Когда программа начинала искать совпадения, то результат был такой, что 208 сравнила сама с собой в нулевой ячейке, условие прошло , потом пошла дальше, сравнила в ячейке 3, уже проходило. Т.е. будто было важно сравнить именно с собой, именно в твоей ячейке. но! Когда пошел сравнивать цифру 67, но условие ело все сравнения адекватно. Вылечил все только при помощи if(array.get(i).equals(array.get(j))) Подскажите, пожалуйста, почему ?