package zh.codegym.task.task07.task0713;

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


/*
玩 Javarella
1.从键盘输入 20 个数字,保存到列表中,然后再将其归类到其他三个列表中:
可以被 3 整除的数字 (x%3==0)、可以被 2 整除的数字 (x%2==0) ,以及所有其他数字。
可以同时被 3 和 2 整除的数字(例如 6)将被归入两个列表中。
列表的声明顺序非常重要。
2.printList 方法应在每行显示一个列表项。
3.使用 printList 方法显示这三个列表。首先显示 x%3 列表,接着显示 x%2 列表,然后显示最后一个列表。

要求:
•	声明并立即初始化 4 个 ArrayList<Integer> 变量。第一个列表为主列表。其他列表将作为补充列表。
•	从键盘读取 20 个数字并将其添加到主列表中。
•	将主列表中所有可以被 3 整除的数字添加到第一个补充列表中。
•	将主列表中所有可以被 2 整除的数字添加到第二个补充列表中。
*/

public class Solution {
    public static void main(String[] args) throws Exception {
        //在此编写你的代码
        ArrayList<Integer> list = new ArrayList<>();
        ArrayList<Integer> list3 = new ArrayList<>();
        ArrayList<Integer> list2 = new ArrayList<>();
        ArrayList<Integer> otherList = new ArrayList<>();
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        for (int i = 0; i<20;i++){
            list.add(Integer.parseInt(reader.readLine()));
        }


        boolean flag = false;
        while (list.size()>0) {
            //初始化状态
            flag=false;
            //添加到能被3整除的集合
            if(list.get(0) % 3 == 0) {
                list3.add(list.get(0));
                flag = true;
            }
            //添加到能被2整除的集合
            if(list.get(0)  % 2 == 0){
                list2.add(list.get(0));
                flag = true;
            }
            //如果加入过,直接删除步进
            if (flag){
                list.remove(0);
            }else{
                //未加入过,添加到其他的集合 步进
                otherList.add(list.remove(0));
            }
        }
        printList(list3);
        printList(list2);
        printList(otherList);

    }

    public static void printList(List<Integer> list) {
        //在此编写你的代码
        for (Integer integer : list) {
            System.out.println(integer);
        }


    }
}