"main" java.lang.IndexOutOfBoundsException: Index: 11, Size: 11
总是报错找不到为什么
上程序
public void TempCopy(CusGroup a, ArrayList<Integer> b) {
for(int i = 0;i < b.size();i++) {
int mi = b.get(i);
int len = a.getRoster().get(mi).size();
TempRoster.remove(mi);
TempT.remove(mi);
ArrayList<Integer> x1 = new ArrayList<Integer>();
LinkedList<Double> y1 = new LinkedList<Double>();
TempRoster.add(mi, x1);
TempT.add(mi, y1);
for(int j = 0;j < len;j++) {
TempRoster.get(mi).add(j, a.getRoster().get(mi).get(j));
TempT.get(mi).add(j, ObjectFun.T.get(mi).get(j));
}
}
}
问题在于,将数据带入程序后有时是没问题,有时候就会报错,也没想通怎么弄的,求解答,谢谢
报错信息发一下呢,需要知道报错在哪里一行上,最好是详细的报错信息。
"main" java.lang.IndexOutOfBoundsException: Index: 11, Size: 11
1.下标越界异常,跟数组越界异常一样,只不过这个在集合的使用中出现
2.意思是你的集合中有11个元素,你的下标也取到了11,这是不行的,只能取到10
3.在第3行打断点,debug看下问题点
你第三行int mi = b.get(i);但是第四行a.getRoster(),你能保证它的长度一定是大于等于mi的吗,如果不行,肯定会报下标越界错误
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632