异常线程 “main” java.lang.IndexOutOfBoundsException:指数:6,大小:6
问题描述:
我有一个问题,这个代码异常线程 “main” java.lang.IndexOutOfBoundsException:指数:6,大小:6
List<String> listaTags = new ArrayList<String>();
int i = 0;
String current = listaTags.get(i);
while (listaTags.size() > 1 && listaTags.contains("/".concat(current)) != current.contains("/")) {
if (current.equals(listaTags.get(i + 1))) {
listaTags.remove(current);
listaTags.remove(listaTags.get(i + 1));
if (i < 0) {
i++;
}
}
i++;
}
System.out.println("errore nel codice");
}
listatags
有六个要素
的错误是:
异常线程 “main” java.lang.IndexOutOfBoundsException: 指数:6,大小:6
有人可以帮我吗?
答
此行
if (current.equals(listaTags.get(i + 1)))
是因为在抛出异常“而”每次列表大小大于1,你的i
值达到比列表的尺寸更大的价值。
答
由于列表的大小为6,所以指数是0,1,2,3,4,5(这是在这种情况下,我的价值)
你总是通过增加i的值1,当它是i = 5时,它抛出IndexOutOfBoundsException。
作为一个修复你可以做
if (i < 5 && current.equals(listaTags.get(i + 1))) {...}
的'如果(I Stefan
列表中的索引是从零开始的,所以如果列表有6个项目,那么有效索引值是0到5(含); 6是无效索引 – Jesper
如果列表有6个元素,那么这些元素的索引从0到5。 – mlecz