Сперва написал с условием, которое закомментировано, валидация не проходила. Переписал, прошла. Объясните, в чем разница между этими условиями?
public class Solution {
    public static void main(String[] args) throws Exception {
        ArrayList<Integer> mainList = new ArrayList<>();
        ArrayList<Integer> threeDivList = new ArrayList<>();
        ArrayList<Integer> twoDivList = new ArrayList<>();
        ArrayList<Integer> anotherList = new ArrayList<>();

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        for (int i = 0; i < 20; i++)
            mainList.add(i, Integer.parseInt(reader.readLine()));

        for(int i = 0; i<20;i++){
            Integer x = mainList.get(i);
            if(x%3 == 0)
                threeDivList.add(x);
            if(x%2 == 0)
                twoDivList.add(x);
            if(x%3 !=0 && x%2 !=0)  //условие, с которым прошла валидация
                anotherList.add(x);
//            else                   // Условие, с которым не проходил пункт
//                anotherList.add(x);//"Добавить в третий дополнительный список все остальные числа из главного."
        }
        printList(threeDivList);
        printList(twoDivList);
        printList(anotherList);
    }

    public static void printList(ArrayList<Integer> list) {
        for(int i = 0; i < list.size(); i++)
        System.out.println(list.get(i));
    }
}