Java Can';t将字符串[]添加到ArrayList<;汽车>;

Java Can';t将字符串[]添加到ArrayList<;汽车>;,java,arraylist,Java,Arraylist,我正在尝试向ArrayList添加字符串,但它不允许我这样做。 有谁能告诉我我做错了什么,或者如何修复它 以下是我的CarApplication类代码: public class CarApplication extends JFrame { private static final long serialVersionUID = 1L; ArrayList<Car> carList = new ArrayList<Car>(); String[][] recor

我正在尝试向ArrayList添加字符串,但它不允许我这样做。 有谁能告诉我我做错了什么,或者如何修复它

以下是我的CarApplication类代码:

public class CarApplication extends JFrame {

private static final long serialVersionUID = 1L;


ArrayList<Car> carList = new ArrayList<Car>();

String[][] records = {
           {"1", "Honda", "Civic", "Silver", "2009", "3500.00", "civic09.jpg", "(087) 3654286"},
           {"2", "Opel", "Corsa", "Red", "2007", "3100.00", "corsa07.jpg", "(086) 2951730"},
         6640085"}
};
int currentItem;

public CarApplication() {
    super("Motor Trader Application");
    for (int i = 0; i < records.length; i++) {
        //to store records in array list;
        carList.add(records[i]);

    }

 }
公共类应用程序扩展JFrame{
私有静态最终长serialVersionUID=1L;
ArrayList carList=新的ArrayList();
字符串[][]记录={
{“1”,“本田”,“思域”,“银牌”,“2009”,“3500.00”,“civic09.jpg”,“087”3654286“},
{“2”,“欧宝”,“科萨”,“红色”,“2007”,“3100.00”,“corsa07.jpg”,“086)2951730”},
6640085"}
};
int当前项目;
公共应用程序(){
超级(“汽车交易商申请”);
for(int i=0;i

我想保留Car类型的数组列表,但可以将记录添加到其中。

您不能将类型
字符串[]
添加到需要类型
Car
的数组列表中。您需要将
Car
对象添加到该列表中

相反,请使用
ArrayList carList=new ArrayList;

如果您想将汽车放在数组列表中,则通过逐个构造汽车对象或创建以ArrayList为参数的汽车对象构造函数来转换要添加到汽车对象中的字符串


最重要的是,这里的主要思想是在创建数据结构时与数据类型保持一致。

您不能将类型
字符串[]
添加到需要类型
Car
的数组列表中。您需要将
Car
对象添加到该列表中

相反,请使用
ArrayList carList=new ArrayList;

如果您想将汽车放在数组列表中,则通过逐个构造汽车对象或创建以ArrayList为参数的汽车对象构造函数来转换要添加到汽车对象中的字符串


最重要的是,这里的主要思想是在创建数据结构时与您的数据类型保持一致。

您的
ArrayList
构造为仅获取类型
Car
String
您的
ArrayList
构造为仅获取类型
Car
String

您的数组列表只能允许汽车对象。更改循环代码:

for (int i = 0; i < records.length; i++) {
            //to store records in array list;
            carList.add(new Car(Integer.parseInt(records[i][0]),records[i][1],records[i][3],Integer.parseInt(records[i][4]),Double.parseDouble(records[i][5]),records[i][6],records[i][7]);

        }
for(int i=0;i
您的数组列表只能允许汽车对象。更改循环代码:

for (int i = 0; i < records.length; i++) {
            //to store records in array list;
            carList.add(new Car(Integer.parseInt(records[i][0]),records[i][1],records[i][3],Integer.parseInt(records[i][4]),Double.parseDouble(records[i][5]),records[i][6],records[i][7]);

        }
for(int i=0;i
让我们从这样一个事实开始:你有两个数据结构保存在你的
汽车上。你有一个
数组列表和一个
字符串[][]
数组列表只保存
汽车,而
字符串[][]
持有一个由
字符串组成的二维数组。查看
字符串中的值可以表示汽车,您可能只需要创建
数组列表
或一维
汽车[]

Car[]
的外观如下:

Car[] records = {
           new Car(1, "Honda", "Civic", "Silver", 2009, 3500.00, "civic09.jpg", "(087) 3654286"),
           new Car(2, "Opel", "Corsa", "Red", 2007, 3100.00, "corsa07.jpg", "(086) 2951730"),
           new Car(3, "Ford", "Mondeo", "Silver", 2008, 5500.00, "mondeo08.jpg", "(087) 6023159"),
           new Car(4, "Nissan", "Primera", "Dark grey", 2007, 4800.00, "primera07.jpg", "(085) 9042456"),
           new Car(5, "Ford", "Focus", "Metallic blue", 2009, 3700.00, "focus09.jpg", "(086) 6640085")
};
ArrayList
版本您可以在
carraylist()应用程序中动态添加所需数量的汽车,如下所示:

ArrayList<Car> carList = new ArrayList<Car>();

    public CarApplication() {
        super("Motor Trader Application");
               carList.add(new Car(1, "Honda", "Civic", "Silver", 2009, 3500.00, "civic09.jpg", "(087) 3654286");
               carList.add(new Car(2, "Opel", "Corsa", "Red", 2007, 3100.00, "corsa07.jpg", "(086) 2951730");
               carList.add(new Car(3, "Ford", "Mondeo", "Silver", 2008, 5500.00, "mondeo08.jpg", "(087) 6023159");
               carList.add(new Car(4, "Nissan", "Primera", "Dark grey", 2007, 4800.00, "primera07.jpg", "(085) 9042456");
               carList.add(new Car(5, "Ford", "Focus", "Metallic blue", 2009, 3700.00, "focus09.jpg", "(086) 6640085");

    currentItem = 0;    
}
ArrayList carList=new ArrayList();
公共应用程序(){
超级(“汽车交易商申请”);
添加(新车(1,“本田”、“思域”、“银牌”,2009年,3500.00,“civic09.jpg”,“(087)3654286”);
carList.add(新车(2,“欧宝”、“Corsa”、“红色”,2007年,3100.00,“corsa07.jpg”,“(086)2951730”);
carList.add(新车(3,“福特”、“蒙迪欧”、“银牌”,2008年,5500.00,“蒙迪欧08.jpg”,“(087)6023159”);
carList.add(新车(4,“日产”、“Primera”、“深灰色”,2007年,4800.00,“primera07.jpg”,“(085)9042456”);
carList.add(新车(5,“福特”,“福克斯”,“金属蓝”,2009年,3700.00,“福克斯09.jpg”,“086)6640085”);
currentItem=0;
}

除非您有理由保留这两种数据结构,否则我会尽可能只在一个位置存储数据您以后不能添加到,但可以添加到。
ArrayList
。因此,这取决于您是在使用静态汽车列表,还是需要在代码的后面继续添加到列表。

让我们从以下事实开始:您有两个数据结构保存在
汽车上。您有一个
ArrayList
和一个
字符串[][]
。应该清楚的是,
ArrayList
仅包含
汽车
,而
字符串[][]
包含
字符串的二维数组
。查看
字符串
数组中的值可以表示汽车,您可能只需要创建
ArrayList
或一维
汽车[]

Car[]
的外观如下:

Car[] records = {
           new Car(1, "Honda", "Civic", "Silver", 2009, 3500.00, "civic09.jpg", "(087) 3654286"),
           new Car(2, "Opel", "Corsa", "Red", 2007, 3100.00, "corsa07.jpg", "(086) 2951730"),
           new Car(3, "Ford", "Mondeo", "Silver", 2008, 5500.00, "mondeo08.jpg", "(087) 6023159"),
           new Car(4, "Nissan", "Primera", "Dark grey", 2007, 4800.00, "primera07.jpg", "(085) 9042456"),
           new Car(5, "Ford", "Focus", "Metallic blue", 2009, 3700.00, "focus09.jpg", "(086) 6640085")
};
ArrayList
版本您可以在
carraylist()应用程序中动态添加所需数量的汽车,如下所示:

ArrayList<Car> carList = new ArrayList<Car>();

    public CarApplication() {
        super("Motor Trader Application");
               carList.add(new Car(1, "Honda", "Civic", "Silver", 2009, 3500.00, "civic09.jpg", "(087) 3654286");
               carList.add(new Car(2, "Opel", "Corsa", "Red", 2007, 3100.00, "corsa07.jpg", "(086) 2951730");
               carList.add(new Car(3, "Ford", "Mondeo", "Silver", 2008, 5500.00, "mondeo08.jpg", "(087) 6023159");
               carList.add(new Car(4, "Nissan", "Primera", "Dark grey", 2007, 4800.00, "primera07.jpg", "(085) 9042456");
               carList.add(new Car(5, "Ford", "Focus", "Metallic blue", 2009, 3700.00, "focus09.jpg", "(086) 6640085");

    currentItem = 0;    
}
ArrayList carList=new ArrayList();
公共应用程序(){
超级(“汽车交易商申请”);
添加(新车(1,“本田”、“思域”、“银牌”,2009年,3500.00,“civic09.jpg”,“(087)3654286”);
carList.add(新车(2,“欧宝”、“Corsa”、“红色”,2007年,3100.00,“corsa07.jpg”,“(086)2951730”);
carList.添加(新车(3,“Fo