Как удалить элемент из массива java
Ответы
Сергей Якимович
18 ноября 2022
Можно воспользоваться методом System.arraycopy()
:
var result = new int[values.length - 1];
// сначала копируем элементы с 0 до index
System.arraycopy(values, 0, result, 0, index);
// затем с index+1 до конца
System.arraycopy(values, index + 1, result, index, values.length - 1 - index);
0
0
Maksim Litvinov
22 августа 2022
В Java массив имеет фиксированный размер и простого способа удалить элемент из массива не существует. Удаление элемента сводится к формированию нового массива на основе старого, в которм будет отсутствовать удаляемый элемент. Ниже пример реализации метода remove(), который удаляет элемент по определенному индексу:
import java.util.Arrays;
class MyArrayUtils {
public static int[] remove(int[] values, int index) {
// Создаем пустой массив размером на один меньше чем исходный
// так как мы удаляем один элемент
var result = new int[values.length - 1];
for (var i = 0; i < values.length; i++) {
if (i != index) { // Копируем все кроме index
// Элементы стоящие дальше index смещаются влево
var newIndex = i < index ? i : i - 1;
result[newIndex] = values[i];
}
}
return result;
}
}
int[] numbers = {1, 5, 8, 100};
System.out.println(Arrays.toString(MyArrayUtils.remove(numbers, 2)));
// => [1, 5, 100]
// Исходный массив не поменялся
System.out.println(Arrays.toString(numbers));
// => [1, 5, 8, 100]
0
0