我创建了一个像这样的列表列表:
List<List> tmp = new ArrayList<List>(2);
然后我想在第一个子列表中插入10,如下所示:
tmp.get(0).add(10);
但是,我收到以下错误:
线程“main”中的异常java.lang.IndexOutOfBoundsException:索引:0,大小:0 at java.util.ArrayList.rangeCheck(ArrayList.java:653) 在java.util.ArrayList.get(ArrayList.java:429)
错误的来源是什么?如何克服错误?
答案 0 :(得分:6)
您已创建了一个初始容量为2
的空列表(即列表的内部表示不会调整大小,直到您添加了2个元素并添加第三)。
然后你尝试从空列表中获取第一个元素。当然,这不会起作用。您需要根据需要首先add()
内部列表(可能是2个),然后 填充这些内部列表。
答案 1 :(得分:4)
您尚未初始化内部列表。这就是你得到错误的原因。
以下代码将初始化每个内部列表。
{{1}}
答案 2 :(得分:0)
您尚未在列表中添加任何内容。声明初始容量为2的任何类型的列表不会自动填充该列表。你必须先这样做。