如何填写列表清单?
我创建了一个列表列表,如下所示:
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的任何类型的列表不会自动填充该列表。 你必须先这样做。