К сожалению, вы не можете просто удалить элемент из массива, не оставив ни пустых индексов, ни создав новый массив.Я бы создал новый массив и использовал System.arraycopy , чтобы упростить копирование ваших элементов.Примерно так:
Object[] newArr = new Object[arr.length-1];
System.arraycopy(arr,0,newArr,0,index);
System.arraycopy(arr,index+1, newArr, index, newArr.length - index);
return newArr;
Где arr
- ваш исходный массив, а index
- случайный индекс для удаления.По сути, он копирует все элементы вплоть до индекса для удаления, а затем копирует все элементы после индекса.Вы можете обернуть это в отдельный метод для простоты.(Вместо того, чтобы использовать arraycopy
, вы могли бы использовать два цикла for для выполнения одного и того же).
Я настоятельно рекомендую, поскольку другие должны использовать Список , который упрощает добавление и удалениеэлементы.