我有像这样声明的数组变量:
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正在给我错误说&#34;方法add(int)未定义为类型ACar&#34;。
你能告诉我我做错了什么吗?对不起,如果我解释得不好。答案 0 :(得分:2)
ACar是一个数组,所以它没有add()方法,你需要通过ACar[x] = value;
如果您想轻松地将数组转换为List,您可以这样做:
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的初始大小。