我有这样声明的数组变量:

public class carshop {
    int numofcars = 0;
    int maxcars = 10;
    ACar[] allCars;
    private CarShop;

public CarShop() { //Car Constructor
    maxcars = maxE;
    allCars = new ACar[maxcars];
    }
}


在我的编码示例中,每次用户添加新车(通过字符串输入),都会使numofcars增加1。我尝试将数组类型更改为arraylist

ArrayList<ACar> allCars = new ArrayList<ACar>(Arrays.asList());


我将allCars = new ACar[maxcars];行更改为:allCars = ACar.add(maxcars);

但是,现在eclipse给了我错误,说“类型ACar的add(int)方法未定义”。

你能告诉我我做错了什么吗?对不起,如果我对此解释不佳。

最佳答案

ACar是一个数组,因此它没有add()方法,您需要通过执行ACar[x] = value;插入值

如果您想轻松地将数组转换为列表,则可以执行以下操作:

List<ACar> carList = Arrays.asList(allCars);


或专门用于ArrayList:

ArrayList<ACar> carList = new ArrayList<ACar>(Arrays.asList(allCars));


但是,您还应该考虑为什么同时拥有一个数组和一个ArrayList。您可以改为:

List<ACar> carList = new ArrayList<ACar>(maxCars);


maxCars变量是可选的,除非您试图优化代码,否则无需设置ArrayList的初始大小。

10-08 00:45