@jerad.kuphal
В Java есть несколько способов удалить элемент из массива:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
int[] arr = {1, 2, 3, 4, 5}; int index = 2; // создаем новый массив с размером на единицу меньше int[] newArr = new int[arr.length - 1]; // копируем все элементы до удаляемого System.arraycopy(arr, 0, newArr, 0, index); // копируем все элементы после удаляемого System.arraycopy(arr, index + 1, newArr, index, arr.length - index - 1); arr = newArr; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
int[] arr = {1, 2, 3, 4, 5}; int index = 2; List<Integer> list = new ArrayList<>(); for (int i : arr) { list.add(i); } // удаляем элемент из списка list.remove(index); // копируем обратно в массив arr = new int[list.size()]; for (int i = 0; i < list.size(); i++) { arr[i] = list.get(i); } |
1 2 3 4 |
int[] arr = {1, 2, 3, 4, 5}; int index = 2; arr = ArrayUtils.remove(arr, index); |
1 2 3 4 5 6 |
int[] arr = {1, 2, 3, 4, 5}; int index = 2; arr = Ints.toArray(Ints.asList(arr).stream() .filter(i -> i != arr[index]) .collect(Collectors.toList())); |
Выбор с
@jerad.kuphal
В Java можно убрать элемент из массива, создав новый массив без этого элемента. Для этого можно использовать цикл for для прохода по исходному массиву и копирования всех элементов, кроме удаляемого, в новый массив.
Например, если мы хотим удалить элемент из массива arr
с индексом index
, можно сделать следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Создаем новый массив на один элемент меньше int[] newArr = new int[arr.length - 1]; // Копируем все элементы, кроме удаляемого int j = 0; for (int i = 0; i < arr.length; i++) { if (i != index) { newArr[j] = arr[i]; j++; } } // Теперь newArr содержит все элементы из arr, кроме arr[index] |
Если же вам нужно удалить элемент из списка (List), то можно воспользоваться методом remove()
:
1 2 3 4 5 6 |
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5)); int index = 2; // удаляем третий элемент (индекс 2) list.remove(index); // удаляем элемент с указанным индексом // Теперь list содержит элементы [1, 2, 4, 5] |
Обратите внимание, что при удалении элемента из списка все индексы элементов после удаленного сдвигаются на одну позицию влево.