Java 如何有效地将数组更改为arraylist
我将数组变量声明如下:Java 如何有效地将数组更改为arraylist,java,arrays,arraylist,Java,Arrays,Arraylist,我将数组变量声明如下: public class carshop { int numofcars = 0; int maxcars = 10; ACar[] allCars; private CarShop; public CarShop() { //Car Constructor maxcars = maxE; allCars = new ACar[maxcars]; } } 在我的编码示例中,每次用户添加一辆新车(通过字符串输入),
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());
ArrayList allCars=新的ArrayList(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);
List carList=Arrays.asList(所有车辆);
或者具体来说,对于ArrayList:
ArrayList<ACar> carList = new ArrayList<ACar>(Arrays.asList(allCars));
ArrayList carList=新的ArrayList(Arrays.asList(allCars));
但是,您还应该考虑一下为什么同时拥有一个数组和一个ArrayList。相反,你可以只做:
List<ACar> carList = new ArrayList<ACar>(maxCars);
List carList=new ArrayList(maxCars);
maxCars变量是可选的,除非您试图优化代码,否则不需要设置ArrayList的初始大小。ACar是一个数组,因此它没有add()方法,您需要通过执行ACar[x]=value插入值代码>
如果要轻松地将数组转换为列表,只需执行以下操作:
List<ACar> carList = Arrays.asList(allCars);
List carList=Arrays.asList(所有车辆);
或者具体来说,对于ArrayList:
ArrayList<ACar> carList = new ArrayList<ACar>(Arrays.asList(allCars));
ArrayList carList=新的ArrayList(Arrays.asList(allCars));
但是,您还应该考虑一下为什么同时拥有一个数组和一个ArrayList。相反,你可以只做:
List<ACar> carList = new ArrayList<ACar>(maxCars);
List carList=new ArrayList(maxCars);
maxCars变量是可选的,您不需要设置ArrayList的初始大小,除非您试图优化代码。什么是ACar
?它是如何定义的?您在哪里使用add
?第一个问题:您声明了一个名为carshop
的类型,但您的构造函数是用于carshop
。现在,为什么在初始化过程中要调用add
?既然已经有了初始值设定项,为什么还要重新初始化变量?该初始值设定项可以更简单,如:List allCars=new ArrayList()代码>也是…java是区分大小写的,构造函数和类声明必须命名为相同的…如果你想把你的代码中的数组改成一个数组,就认为它们有一些不同:An ArrayList没有固定的大小,它在你添加对象时增长。因此,如果您的逻辑要求列表具有最大长度(正如变量maxcars所建议的),您可能应该选择与标准ArrayList不同的内容,或者注意您必须自行处理最多可以添加10辆车。什么是ACar
?它是如何定义的?您在哪里使用add
?第一个问题:您声明了一个名为carshop
的类型,但您的构造函数是用于carshop
。现在,为什么在初始化过程中要调用add
?既然已经有了初始值设定项,为什么还要重新初始化变量?该初始值设定项可以更简单,如:List allCars=new ArrayList()代码>也是…java是区分大小写的,构造函数和类声明必须命名为相同的…如果你想把你的代码中的数组改成一个数组,就认为它们有一些不同:An ArrayList没有固定的大小,它在你添加对象时增长。因此,如果您的逻辑要求列表具有最大长度(正如您的变量maxcars所建议的),您可能应该选择与标准ArrayList不同的内容,或者注意您必须自己处理最多可以添加10辆车的问题。这不会转换为ArrayList。它转换为一个列表(也称为ArrayList,但不是java.util.ArrayList),该列表不能像ArrayList那样调整大小,并且由原始数组支持。该列表不会转换为ArrayList。它转换为一个列表(也称为ArrayList,但不是java.util.ArrayList),该列表不能像ArrayList那样调整大小,并由原始数组支持。