java.lang.IndexOutOfBoundsException: Index: 1365,Size: 1365 at java.util.ArrayList.rangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at com.Engine.write(Engine.java:114) at com.Engine.read(Engine.java:90) at com.Engine.main(Engine.java:19)
我明白我的阵列是超出范围,但是是什么
指数:1365,大小:1365
表明?
我该怎么办?只是增加我的数组的大小?
解决方法
-Size是数组的大小(可容纳的元素的数量).
-Index是您尝试访问的位置.
注1:由于第一个索引为0,因此您在哪里尝试访问数组的最大值,这就是为什么您得到该异常
FIX选项1
要解决这个异常,在你使用循环来操纵元素的情况下,你可以这样做:
for(int i = 0; i < array.length; i++) { array[i].doSomething(); }
FIX选项2
正如你所说的增加尺寸将是另一个选择.你只需要这样做:
MyArray[] ma = new MyArray[1366];
但
这将不是很灵活,以防你以后再次增加它.因此,避免这种情况的另一个选择是使用一些更高级的数据结构或集合,如List,因为它们在需要时自动增加.
有关数据结构的更多信息,请参见:http://tutorials.jenkov.com/java-collections/index.html
示例1创建:
List<MyObject> myObjects = new ArrayList<MyObject>();
示例2迭代:
for(MyObject mo : myObjects) { MyObject tmpValue = mo; mo.doSomething(); }