每当我尝试运行我的代码时,我都会得到一个超出界限的错误数组。
trans = new ArrayList<List<Transition>>(5);
ArrayList<Transition> t = new ArrayList<Transition>(5);
for (j = 0; j <5; j++)
trans.get(j).addAll(t); // <- Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
答案 0 :(得分:4)
当您创建列表列表时,您有一个大小为0的空列表,然后您说get(i)将尝试将大小与i进行比较,并且jdk期望大小大于索引i。
所以你可能会做类似的事情:
trans = new ArrayList<List<Transition>>(5);
for (j = 0; j <5; j++) {
trans.add(new ArrayList<Transition>());
}
ArrayList<Transition> t = new ArrayList<Transition>(5);
for (j = 0; j <5; j++)
trans.get(j).addAll(t); // <- out of bounds
答案 1 :(得分:1)
您的trans
列表为空。你没有add
任何东西。当你运行trans.get(j)
时,它无法获得任何结果。
答案 2 :(得分:0)
请参阅docs:
构造具有指定初始容量的空列表。
你没有add
任何事情,你不能get
:
trans.get(j).addAll(t);
↑
尝试检查大小,您将获得0.因此,任何访问trans
的尝试都会抛出异常。