将元素添加到数组java

时间:2015-02-06 03:39:10

标签: java arrays loops add shift

您好我想知道如何编写一个方法来添加和删除java中对象数组中的对象。我不允许使用任何java内置的抽象数据结构来执行此操作,例如数组列表或向量等。。汽车列表最初是空的,但是newCar-要添加到此集合的新Car对象 position - CarCollection中将插入汽车的位置 前提条件: 该CarCollection对象已被实例化,并且1<位置< items_currently_in_list + 1.此菜单中的汽车对象数小于maxCarsPossible。

后置条件: 新车现在存放在集合中的所需位置。所有最初位于大于或等于位置的购物车都会向后移动一个位置。 (例如:如果一个集合中有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;
            }
        }

    }

1 个答案:

答案 0 :(得分:0)

我建议存储另一个名为oldCarCollection的数组,并在每次添加新车时重置和更新。例如,在你的addCar方法中,

public void addCar(Car carToAdd) {
    cars = new Car[oldCars.length + 1];
    for (int i = 0; i < cars.length; i++) {
        if (i == oldCars.length) {
            // If we're done transferring from old cars.
            cars[i] = carToAdd;
        } else {
            // Transfer from old cars
            cars[i] = oldCars[i];
        }
    }
    // Update oldCars
    oldCars = new Car[cars.length];
    System.arraycopy(cars, 0, oldCars, 0, oldCars.length);
}