【发布时间】:2017-04-17 16:40:47
【问题描述】:
我创建了一个这样的列表列表:
List<List> tmp = new ArrayList<List>(2);
然后我想在第一个子列表中插入 10,如下所示:
tmp.get(0).add(10);
但是,我收到以下错误:
线程“主”java.lang.IndexOutOfBoundsException 中的异常:索引:0,大小:0 在 java.util.ArrayList.rangeCheck(ArrayList.java:653) 在 java.util.ArrayList.get(ArrayList.java:429)
错误的根源是什么,我该如何克服?
【问题讨论】:
-
"我创建了一个这样的列表列表" 您实际上并没有创建列表列表,只是一个列表。
-
tmp.size()..... -
@takendarkk - 从语义上讲,他们确实创建了一个列表列表,它目前的长度恰好为 0。
-
是的,我想这取决于你如何看待它。我认为这只是一个列表 - 一旦有东西在里面然后它就是一个东西的列表。
-
TL;DR - 您调用的构造函数会创建一个初始容量为 2 项的空列表。为避免该错误,请在外部列表中添加一些列表。