无法将String []添加到ArrayList <car> </car>

时间:2014-12-10 21:07:01

标签: java arraylist

我试图将一个字符串添加到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,但是能够将记录添加到它。

3 个答案:

答案 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]);

        }