for (int i=0; i<count.size() ;i++) {
           for (int j =0; j < count.size() ;j++) {
               if (i!=j){
                   if (count.get(i).equals(count.get(j))) {
                       sum++;
                   }}
           }
           bytes.put(count.get(i), sum);
           sum = 0;
       }

       int m = 0;
       for (Map.Entry<Integer, Integer> entry : bytes.entrySet()) {
           if (m < entry.getValue()) {
               m = entry.getValue();
           }
           if (entry.getValue().equals(m)){
               System.out.print(entry.getKey()+" ");}
       }
что касается цикла с аррайлист, то вроде бы понятно. мы сравниваем байты и закидываем в мап байт с самым большим количеством повторения (тут недочет тоже есть, например ar.get(2) может быть равным ar.get(1) который мы уже засунули в мап. и поставим 2ой элемент тоже со своим сам(на одну меньше чем у 1ого элемента) в мапу) так вот как работает код цикла мапы? что за сравнения ?