Full code:
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;
}
Loops to remove works fine.
My question about while loop:
in while loop in this field:
list.get(t).contains("WEST") && list.get(q).contains("EAST") ||
i've got: IndexOutOfBoundsException: Index: 1, Size: 1
Only one element remains in List.
As far as I could get: index q check element after last element in list and get OutOfBound.
How can I fix this?
In similar topics, I couldn't find clear answer, for my question, please help.