我有这样声明的数组变量:
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的初始大小。