Java Can';t将字符串[]添加到ArrayList<;汽车>;
我正在尝试向ArrayList添加字符串,但它不允许我这样做。 有谁能告诉我我做错了什么,或者如何修复它 以下是我的CarApplication类代码: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
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