Полный код:
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: Index: 1, Size: 1
В списке остается только один элемент.
Насколько я мог получить: index q проверить элемент после последнего элемента в списке и получить OutOfBound.
Как это исправить?
В аналогичных темах я не могНе нашли четкого ответа, на мой вопрос, пожалуйста, помогите.