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.
 
     
     
    