【发布时间】:2019-02-01 07:58:32
【问题描述】:
完整代码:
public static String[] dirReduc(String[] arr) {
LinkedList<String> list = new LinkedList<>(Arrays.asList(arr));
for (int t = 0; t < list.size(); t++) {
for (int q = t + 1; q < list.size() ; q++) {
while (list.get(t).contains("NORTH") && list.get(q).contains("SOUTH") ||
list.get(t).contains("SOUTH") && list.get(q).contains("NORTH") ||
list.get(t).contains("WEST") && list.get(q).contains("EAST") ||
list.get(t).contains("EAST") && list.get(q).contains("WEST"))
for (int i = 0; i < list.size(); i++) {
for (int k = i + 1; k < list.size(); k++) {
if (list.get(i).contains("NORTH") && list.get(k).contains("SOUTH") ||
list.get(i).contains("SOUTH") && list.get(k).contains("NORTH") ||
list.get(i).contains("WEST") && list.get(k).contains("EAST") ||
list.get(i).contains("EAST") && list.get(k).contains("WEST")) {
list.remove(i);
list.remove(k - 1);
}
}
}
}
System.out.println(list);
}
return null;
}
删除循环可以正常工作。
我关于while循环的问题:
在此字段的while循环中:
list.get(t).contains("WEST") && list.get(q).contains("EAST") ||
我得到:IndexOutOfBoundsException:索引:1,大小:1
List 中只剩下一个元素。
据我所知:索引 q 检查列表中最后一个元素之后的元素并获取 OutOfBound。
我该如何解决这个问题?
在类似的主题中,我找不到明确的答案,对于我的问题,请帮助。
【问题讨论】:
-
请提供完整的代码sn-p来帮忙。谢谢。
标签: java loops while-loop indexoutofboundsexception