Arrays.asList(elements)
делает не то, что вы думаете, он возвращает список, содержащий массив int [], а не элементы массива.Вы не можете создать список примитивов.Если вы хотите использовать Список, вы должны сначала преобразовать int
в Integer
.
. Вы можете получить список Integer
с помощью
List<Integer> arrList = Arrays.stream(elements).boxed().collect(Collectors.toList());
, однако у вас все еще естьошибка в вашей программе, из-за которой вы будете пропускать числа.
for (int j = i + 1; j < arrList.size(); j++) {
if (arrList.get(j).equals(current) && occurrences >= maxOccurrences) {
arrList.remove(j); // This shortens the list causing us to skip the next element
j--; // One hackish way is to go back one step
} else if (arrList.get(j).equals(current)) {
occurrences++;
}
}
Одно из решений состоит в том, чтобы сделать цикл в обратном направлении вместо
for (int j = arrList.size() - 1; j > i; j--) {
if (arrList.get(j).equals(current) && occurrences >= maxOccurrences) {
arrList.remove(j);
} else if (arrList.get(j).equals(current)) {
occurrences++;
}
}