【发布时间】:2015-01-02 14:18:09
【问题描述】:
我正在尝试将字符串添加到数组列表的数组中。
ArrayList<String>[] test = (ArrayList<String>[]) new ArrayList[2];
test[0].add("Hello World!");
上面的代码执行时,会抛出空指针异常。任何想法如何工作?
【问题讨论】:
标签: java
我正在尝试将字符串添加到数组列表的数组中。
ArrayList<String>[] test = (ArrayList<String>[]) new ArrayList[2];
test[0].add("Hello World!");
上面的代码执行时,会抛出空指针异常。任何想法如何工作?
【问题讨论】:
标签: java
您的代码是空指针,因为数组“test”仅包含 ArrayList 类型的空引用。您的构造仅创建数组存储,而不是列表存储。理解这一点很重要,并且对于任何对象数组(或集合的集合)都是一样的。
例如以下将包含 3 个单元格,所有单元格都包含 null。
Integer[] foo new Integer[3]
您需要先实例化一个列表,然后才能添加。
ArrayList<String>[] test = (ArrayList<String>[]) new ArrayList[2];
test[0] = new ArrayList<String>();
test[0].add("Hello World!");
【讨论】:
用于创建 ArrayList 的数组。您必须执行以下操作
ArrayList[] test = new ArrayList[2];// create array with all elements null
for(int i=0; i<2;i++)
{
test[i] = new ArrayList<String>(); // initialize each element with ArrayList object
}
test[0].add("Hello World!");
【讨论】:
你使用了错误的语法
它应该像这样工作
ArrayList<String>[] arrayList = new ArrayList[2];
arrayList[0] = new ArrayList<String>();
arrayList[0].add("Hello World");
【讨论】:
每次尝试添加到列表时都应该创建一个新数组,
String[] test= new String[2];
ArrayList<String[]> test= new ArrayList<String[]>();
t2[0]="0";
t2[1]="0";
test.add(t2);
在上面的示例中,您将 test 数组对象的引用传递给列表。在每个 .add() 方法上
或者同样的事情也可以用下面的方式在一个语句中完成,
ArrayList<String>[] test = (ArrayList<String>[]) new ArrayList[2];
test.add(new String[] {"0", "0"});
更新
如果你想创建 arraylist 的数组,请看这里,
【讨论】: