My Solution has comlpete the tasks, although it shouldn't... The output is "Liebe, Leier, Liebe, Leier", though it's meant to be just "Liebe, Leier, Liebe". I'm sorry for posting a solution, but I don't get why this went through?! Even though the output is incorrect... public class Solution { public static void main(String[] args) throws Exception { ArrayList<String> liste = new ArrayList<>(); liste.add("Rose"); // 0 liste.add("Liebe"); // 1 liste.add("Leier"); // 2 liste = korrigieren(liste); for (String s : liste) { System.out.println(s); } } public static ArrayList<String> korrigieren(ArrayList<String> list) { // schreib hier deinen Code ArrayList<String> toRemove = new ArrayList<>(); ArrayList<String> toAdd = new ArrayList<>(); for(String i : list) { System.out.println("next"); if (i.contains("R") || i.contains("r") && !(i.contains("l") || i.contains("L"))) { System.out.println("R"); toRemove.add(i); System.out.println("R has been added to toRemove"); } else if (i.contains("L") || i.contains("l") && !(i.contains("R") || i.contains("r"))) { System.out.println("L"); toAdd.add(i); System.out.println("L has been added"); } } list.removeAll(toRemove); list.addAll(toAdd); System.out.println(list.size()); return list; } }