Java

JAVA. Помогите, пожалуйста, дописать код программы:

Есть массив чисел. Вывести число, которое встретилось в массиве большее количество раз.Если такого числа нет, вывести соответствующее сообщение.

Первое условие получилось вывести(на фото). А второе не могу понять - "Если такого числа нет, вывести соответствующее сообщение. "
JH
Jan Haknazarov
80
Можно так. Конечно, весь этот алгоритм можно было упростить, но тогда тот, кто, возможно, станет проверять задание, может его не принять:
 import java.util.*; 

public class Main
{
public static void main (String[] args) {
int num = 10;
ArrayList arr = new ArrayList ();
Random rn = new Random ();

for (int i = 0; i < num; i++) arr.add (rn.nextInt (10));
System.out.println (arr.toString ());

int max = 1;
int elm = 0;
int maxl = 0;
int cnt = 0;
boolean mulf = false;
for (int i = 0; i < arr.size (); i++) {
cnt = 1;
for (int j = i + 1; j < arr.size (); j++) {
if (arr.get (i) == arr.get (j)) {
cnt++;
elm = arr.get (i);
}
}
if (cnt > max) {
max = cnt;
maxl = elm;
} else if (cnt == max && max > 1) mulf = true;
}
if (max > 1 && !mulf)
System.out.println (String.format ("Элемент = %d, количество = %d", maxl, max));
else
System.out.println (String.format ("Всех элементов массива по одному либо несколько в одинаковом количестве"));

}
}
Колпаков Андрей
Колпаков Андрей
31 524
Лучший ответ
Колпаков Андрей Нашёл ошибку. Исправленная версия. Здесь должно быть так:
 .
.
.
if (cnt > max) {
max = cnt;
maxl = elm;
mulf = false;
} else if (cnt == max && max > 1)
.
.
.
Может быть массив 3 3 3 3 5 5 5 5. В нем два числа встречаются одинаково часто, так что непонятно, какое из них следует вывести.
Или может быть пустой массив.

Проверьте случай, когда наиболее частое число не стоит в конце массива.
Ну, видимо, имеется в виду, если несколько чисел встречаются одинаковое количество раз.
Если все числа в массиве разные, то вывести сообщение.
Зачем?
Олег Юсупов
Олег Юсупов
4 920
Jan Haknazarov Мне нужно выполнить задание, вот и прошу помощь.