Я бы просто создал HashMap<Integer,Integer>
, где первое целое число - это значение в массиве оценок, а второе - частота.
Затем обработайте заполнение массива в hashmap. Если ключ уже существует, увеличьте счет на единицу. Если это новый ключ, установите его на один.
Затем обработайте хэш-карту, чтобы найти значение с наибольшим вхождением.
Я собирался поработать над исходным кодом, как только получил доступ к машине, на которой была установлена Java, но, поскольку она теперь помечена как домашняя работа, это только алгоритмы (которые в любом случае будут лучше для вас):
Create empty hashmap freq
For each entry in your array (probably nested loops):
If entry.value is not in freq:
Add entry.value to freq, set its count to zero
Increase count of freq.value
Set max_count to 0
For each item in freq:
If item.count is greater than max_count:
Set max_list to an empty list
Set max_count to item.count
If item.count is equal to max_count:
Append item.value to max_list
If max_count is greater than 0:
Output max_count, max_list
Я бы следовал базовому алгоритму, который состоит из двух последовательных циклов.
Первый просто создает отображение значений на счетчики, чтобы вы могли найти наибольшее количество позже.
Второй проходит по карте и создает список значений с наибольшим количеством.