【发布时间】:2017-10-16 09:35:37
【问题描述】:
这段代码有问题
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 有六个元素
错误是:
线程“主”java.lang.IndexOutOfBoundsException 中的异常: 索引:6,大小:6
谁能帮帮我?
【问题讨论】:
-
if (i < 0)语句可以删除 - 我不可能小于零。您的 IndexOutOfBoundsException 可能会在循环中的几个循环后发生 - 值 current 永远不会改变,因此循环将永远继续(您可能希望在 while 循环中包含String current =。 -
列表中的索引是从零开始的,所以如果列表有 6 个项目,那么有效的索引值是 0 到 5(含); 6 是无效索引。
-
如果列表有6个元素,那么这些元素的索引是从0到5。元素6不存在