如何填写列表清单?

我创建了一个列表列表,如下所示:

List tmp = new ArrayList(2); 

然后我想将10插入第一个子列表,如下所示:

 tmp.get(0).add(10); 

但是,我收到以下错误:

线程“main”中的exceptionjava.lang.IndexOutOfBoundsException:索引:0,大小:0,位于java.util.ArrayList.get(ArrayList.java:429)的java.util.ArrayList.rangeCheck(ArrayList.java:653)

错误的根源是什么?如何克服错误?

您已经创建了一个初始容量为2的空列表(即,在您向其添加2个元素并添加第三个元素之前,列表的内部表示将不会resize)。

然后你尝试从空列表中获取第一个元素。 当然这不会起作用。 您需要首先add()尽可能多的内部列表(可能是2), 然后填充这些内部列表。

您尚未初始化内部列表。 这就是你得到错误的原因。

以下代码将初始化每个内部列表。

 int initialCapacity=2; List tmp = new ArrayList(initialCapacity); for(int i = 0; i < initialCapacity; i++) tmp.add(new ArrayList()); 

您尚未在列表中添加任何内容。 声明初始容量为2的任何类型的列表不会自动填充该列表。 你必须先这样做。