package com.javarush.test.level07.lesson09.task01;


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

/* Три массива
1. Введи с клавиатуры 20 чисел, сохрани их в список и рассортируй по трём другим спискам:
Число делится на 3 (x%3==0), делится на 2 (x%2==0) и все остальные.
Числа, которые делятся на 3 и на 2 одновременно, например 6, попадают в оба списка.
2. Метод printList должен выводить на экран все элементы списка с новой строки.
3. Используя метод printList выведи эти три списка на экран. Сначала тот, который для x%3, потом тот, который для x%2, потом последний.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Integer> list = new ArrayList<Integer>();
        ArrayList<Integer> tree = new ArrayList<Integer>();
        ArrayList<Integer> two = new ArrayList<Integer>();
        ArrayList<Integer> others = new ArrayList<Integer>();

        for (int i = 0; i < 20; i++)
        {
            int s = Integer.parseInt(reader.readLine());
            list.add(s);
            if (list.get(i) % 3 == 0)
                tree.add(s);
            if (list.get(i) % 2 == 0)
                two.add(s);
            if (list.get(i) % 3 != 0 && list.get(i) % 2 != 0)
                others.add(s);
        }
            printList(tree);
            printList(two);
            printList(others);
    }

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

Так выглядит эта задача. Хотя, у меня было другое решение, которое понравилось мне больше:

public static void printList(List<Integer> list)
    {
        System.out.println(list);
    }