Вывод потверждает правильность действий, в чём может быть ошибка?
package com.javarush.task.task07.task0713;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Играем в Jолушку
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Integer> list = new ArrayList<>();
ArrayList<Integer> listDivBy3 = new ArrayList<>();
ArrayList<Integer> listDivBy2 = new ArrayList<>();
ArrayList<Integer> listAllTheRest = new ArrayList<>();
for (int i = 0; i < 20; i++) {
list.add(Integer.parseInt(reader.readLine()));
}
for (int i = 0; i < list.size(); i++) {
if (list.get(i) % 3 == 0) {
listDivBy3.add(list.get(i));
} else if (list.get(i) % 2 == 0) {
listDivBy2.add(list.get(i));
} else if (list.get(i) % 3 == 0 && list.get(i) % 2 == 0) {
listDivBy3.add(list.get(i));
listDivBy2.add(list.get(i));
} else if (list.get(i) % 3 != 0 && list.get(i) % 2 != 0) {
listAllTheRest.add(list.get(i));
}
}
printList(listDivBy3);
printList(listDivBy2);
printList(listAllTheRest);
}
public static void printList(List<Integer> list) {
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
if (list.get(i) % 3 == 0)
и если оно ему соответствует, то дальше оно просто не идет. Таким образом, число 24 уйдет в список listDivBy3 и не попадет в список чисел, что делятся на 2 без остатка.