我的代码为:
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,有人可以帮我这个。
答案 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");
...
答案 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]
但是上面没有类型安全。当您将String
和Integer
个实例添加到两个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]);