基于 Java 中数组索引的设置器

Setters based on array Index in Java

我有以下内容:

public class  Car{
public Car()
{//some stuff
}
private Car [] carmodels  ;
public Car [] getCarModel() {
return this.carmodels;
}

public void setcarModel(Car [] carmodels ) {
this.carmodels = carmodels;

}

现在在我的测试中class,我有这样的东西

public void main (String [] args)
 {
   Car car1= new Car();
   car.setcarModel(new Car[5]);//here i create an array of Car

   for(int i =0;i<5;i++)
   {
    // how can i created 5 cars and set them based on index i
    // car.setCarModel[new Car()]????
   }
 }

怎么做到的?我可以使用类型为 Car 的临时数组,我可以在循环之后将其传递给我的 Setter。但是有没有更好的方法呢?

for(int i =0;i<5;i++)
{
  car.getCarModel()[i] =new Car();
}

通过传递索引写另一个重载setter。

public void setCarModel(int index, Car c)
{
 carmodels[index] = c;
}

for(int i =0;i<5;i++)
{
   car.setCarModel(i, new Car());
}

如果您坚持不在 for 循环中使用临时值,您可以使用 ArrayList 而不是汽车模型数组。

比添加方法

public void addCar(Car toadd)
{
     carmodels.add(toadd);
}

比在你的 foor 循环中调用

for(int i =0;i<5;i++)
{
    car.addCar(new Car());
 }

我假设大小可以变化并且固定大小的数组是不够的。

添加接受索引的setter:

public void setCarModel(int index, Car carModel) {
    this.cardmodels[index] = carModel;
}

然后,在你的循环中,调用

car.setCarModel(i, new Car());

看到方法了吗getCarModel?那个方法returns一个Car[]对吧?这意味着您可以在 car1.getCarModel()!

上对数组执行任何操作

那么如何在数组的索引处设置一个项目呢?你这样做:

someArray[someIndex] = someValue;

如果我们将此应用于 car1.getCarModel

返回的数组
car1.getCarModel()[i] = new Car();

就是这样。

或者,您可以在 Car 中编写另一个方法来设置汽车模型数组中的项目:

public void setItemInCarModels(int index, Car item) {
    carModels[index] = item;
}

简单!

顺便说一句,你的模型没有意义...