Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何有效地将数组更改为arraylist_Java_Arrays_Arraylist - Fatal编程技术网

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那样调整大小,并由原始数组支持。