Хоть убейте не понимаю почему он не принимает второе условие... Работает все исправно
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> dev3 = new ArrayList<>();
ArrayList<Integer> dev2 = new ArrayList<>();
ArrayList<Integer> ost = new ArrayList<>();
for(int i=0; i<20; i++) //Заполнение главного массива
list.add(i, Integer.parseInt(reader.readLine()));
int x; //Если делятся на 3 и 2
for(int i=0;i<list.size();i++) {
x = list.get(i);
if (x % 3 == 0 && x % 2 == 0) {
dev3.add(x);
dev2.add(x);
list.remove(i);
} }
for(int i=0;i<list.size();i++) { //Если делятся на 2
x = list.get(i);
if (x % 3 == 0 ) {
dev3.add(x);
list.remove(i);
--i;
} }
for(int i=0;i<list.size();i++) { //Если делятся на 3
x = list.get(i);
if (x % 2 == 0 ) {
dev2.add(x);
list.remove(i);
--i;
} }
for(int i=0; i<list.size(); i++){ //Остаток чисел в третий массив
x = list.get(i);
ost.add(x);}
printList(dev3);
printList(dev2);
printList(ost);
}
public static void printList(List<Integer> list) {
for(int i=0; i<list.size();i++)
System.out.println(list.get(i));
}
}