Я бы предпочел int[]
над Integer[]
и повторить отсортированный массив в обратном направлении.Вам на самом деле не нужно else
здесь, просто проверьте, что вы не в конце массива - и если вы не проверяете, отличается ли текущий счет от следующего (поскольку мы выполняем итерацию в обратном направлении).Вам нужно только проверить flag
, когда это условие выполнено (и break
после второго изменения).Мол,
int[] scores = { 4, 4, 4, 6, 6, 4, 2, 3 };
Arrays.sort(scores);
for (int i = scores.length - 1, flag = 0; i >= 0; i--) {
if (i != scores.length - 1 && scores[i] != scores[i + 1]) {
flag++;
if (flag >= 2) {
break;
}
}
System.out.println(scores[i]);
}