我试图将一个字符串添加到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]);
}
}
我想保留我的类型为Car的arrayList,但是能够将记录添加到它。
答案 0 :(得分:3)
您无法将类型String[]
添加到需要类型Car
的数组列表中。您需要将Car
个对象添加到该列表中。
相反,请使用ArrayList<String[]> carList= new ArrayList<String[]>;
如果您想将汽车放入数组列表中,请将您尝试添加的字符串转换为Car Objects,方法是逐个构建它们,或者创建CarList对象的构造函数,将ArrayList作为参数。
最重要的是,主要思想是在创建数据结构时与数据类型保持一致。
答案 1 :(得分:1)
您的ArrayList
构造为仅采用Car
类型而非String
答案 2 :(得分:1)
您的数组列表只能允许使用汽车对象。更改循环代码:
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]);
}