ArrayList无法添加ArrayList,错误java.lang.NullPointerException

时间:2015-07-29 04:11:25

标签: java arraylist

我的代码为:

ArrayList[] arraylist=new ArrayList[2];
    arraylist[0].add("Ngyen");
    arraylist[0].add("Van");
    arraylist[0].add("Jone");

    arraylist[1].add(20);
    arraylist[1].add(40);
    arraylist[1].add(28);
    System.out.println(arraylist[0]);
    System.out.println(arraylist[1]);

我尝试通过add方法添加值,在运行时,有一个java.lang.NullPointerException,有人可以帮我这个。

3 个答案:

答案 0 :(得分:3)

ArrayList[] arraylist=new ArrayList[2];

这会创建一个名为arraylist的数组,该数组可以保留2 ArrayList但尚未初始化但意味着arraylist[0]arraylist[1]当前为null。因此arraylist[0].add("Ngyen");将为您提供NullPointerException

ArrayList字符串可以通过以下方式初始化:

ArrayList<String> list = new ArrayList<String>();

或者你可以试试这个:

arraylist[0]= new ArrayList();
arraylist[1]= new ArrayList();
arraylist[0].add("Ngyen");
...

Run live.

答案 1 :(得分:1)

您的第一个声明

ArrayList[] arraylist=new ArrayList[2];

分配一个可引用两个ArrayList(s)的数组对象。它没有实例化那些ArrayList(s)。 raw-types 错误的 想法。但你可以添加类似的内容,

ArrayList[] arraylist = new ArrayList[2];
arraylist[0] = new ArrayList();
arraylist[1] = new ArrayList();

我得到了

[Ngyen, Van, Jone]
[20, 40, 28]

但是上面没有类型安全。当您将StringInteger个实例添加到两个List时。

答案 2 :(得分:-2)

试试这个。

ArrayList[] arraylist=new ArrayList[2]; // creating an array to hold two array list.

// these two statements got missed while copy and paste from my Editor, Apologies for that. 
arraylist[0] = new ArrayList();
arraylist[1] = new ArrayList();

arraylist[0].add("Ngyen");
arraylist[0].add("Van");
arraylist[0].add("Jone");

arraylist[1].add(20);
arraylist[1].add(40);
arraylist[1].add(28);
System.out.println(arraylist[0]);
System.out.println(arraylist[1]);