Здравствуйте, мне было интересно, как написать метод для добавления и удаления объектов из массива объектов в java. Мне не разрешено использовать какие-либо из построенных в Java абстрактных структур данных для этого, например, список массивов или векторов ect.. Список автомобилей полностью пуст, но новый автомобиль - новый объект автомобиля, который нужно добавить в эту коллекцию. позиция - позиция в этом CarCollection, где будет вставлен автомобиль Предпосылки: Этот объект CarCollection был создан и 1 < позиция < items_currently_in_list + 1 . Количество объектов автомобиля в этом меню меньше, чем maxCarsPossible.Добавление элементов в массив java
Состояние: Новый автомобиль теперь хранится в нужном месте в коллекции. Все carthat изначально были в позициях, превышающих или равных положению, перемещаются назад на одну позицию. (Например: если в коллекторе есть 5 автомобилей, позиции 1-5, и вы вставляете новый автомобиль в позицию 4, новая карта теперь будет в положении 4, автомобиль, который был в положении 4, будет перемещен в позицию 5 , и автомобиль, который находился в положении 5, будет перемещен в позицию 6).
public class CarCollection {
private Car[] collection;
final int maxCarsPossible = 100;
public CarCollection()
{
collection = new Car[0];
}
public void addCar(Car newCar,int position)
{
for(int i =0; i < collection.length; i++)
{
if(collection.length+1>=position&&position>=1)
{
i = position;
collection[i] = newCar;
}
}
}
Вы хотите добавить/удалить элемент массива (как в заголовке), или создать новый массив, который является копией старого с элементом добавлено/удалено ? –
@AdrianShum поднимает хороший вопрос, это очень важно, чтобы определить, какое именно решение вам нужно. Создание копии массива «удалит» данные. Я вижу одну проблему в вашем конструкторе; вы делаете размер массива 0 с места в карьер. Вероятно, это не то, что вы намеревались. Кроме того, ваш оператор if действительно запутан, попробуйте разбить его, нет вреда в использовании вложенных if-утверждений, если он улучшает ясность. –
коллекция.length + 1? Когда вы когда-нибудь перешагнете границы своего массива? Это условие всегда будет истинным из-за того, как разработан ваш цикл for. Вы никогда не должны смотреть за пределы массива. –