吃货联盟这个代码都用到了哪些知识点呀

可以帮我看看下面的代码用到了哪些知识点嘛?

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class qb1 {

        static Scanner sc=new Scanner(System.in);
        static int date;//送餐时间
        static int number=0;//餐袋序号
        public static void main(String[] args) {
            
            d1 zhuce = new d1();
            e11 denlu = new e11();
            System.out.println("欢迎来到CL!");
            System.out.println("1.注册");
            System.out.println("2.登录");
            System.out.println("3.退出");
            Scanner sc= new Scanner(System.in);
            String a = sc.next();
            switch(a) {
            case"1":zhuce.zhuce();
            System.out.println("欢迎来到CL!");
            System.out.println("1.注册");
            System.out.println("2.登录");
            System.out.println("3.退出");
            Scanner sr= new Scanner(System.in);
            case"2":denlu.denlu();
            break;
            }
            
            ArrayList<Food> list = new ArrayList<>();
            list.add(new Food(1,"榴莲披萨8寸",56));
            list.add(new Food(2,"年糕炸鸡",20));
            list.add(new Food(3,"杨梅炒苦瓜",16));
            ArrayList<FabulousFood> list2 = new ArrayList<>();
            list2.add(new FabulousFood(1,"榴莲披萨8寸",56,0,"赞"));
            list2.add(new FabulousFood(2,"年糕炸鸡",20,0,"赞"));
            list2.add(new FabulousFood(3,"杨梅炒苦瓜",16,0,"赞"));
            ArrayList<SeeFood> list1 = new ArrayList<>();
            System.out.println("      欢迎使用“CL”");
            System.out.println("******************************");
            orderFood(list,list1,list2);
}
        public static void orderFood(ArrayList<Food> list1,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3) {//点餐系统界面
            System.out.println("1,我要点餐");
            System.out.println("2,查看餐带");
            System.out.println("3,签收订单");
            System.out.println("4,删除订单");
            System.out.println("5,我要点赞");
            System.out.println("6,退出系统");
            System.out.println("***********************");
            System.out.println("请选择: ");
            String num=sc.next();
            if (num.equals("1")) {
                orderingFood(list1,list2,list3);
            }else if (num.equals("2")) {
                seeFood(list1,list2,list3);
            }else if (num.equals("3")) {
                signFor(list1,list2,list3);
            }else if (num.equals("4")) {
                deletFood(list1,list2,list3);
            }else if (num.equals("5")) {
                fabulousFood(list1,list2,list3);
            }else if (num.equals("6")) {
                System.out.println("谢谢使用,欢迎下次光临!");
                return;
            }else {
                System.out.println("输出错误,请重新输入!");
                orderFood(list1,list2,list3);
            }
            
            }
        public static void fabulousFood(ArrayList<Food> list,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//点赞
            System.out.println("******我要点赞******");
            System.out.println("序号    菜名    单价");
            Iterator<FabulousFood> it = list3.iterator();
            while (it.hasNext()) {
                System.out.println(it.next());
            }
            System.out.println("请选择您要点赞菜品序号:");
            int num= sc.nextInt();
            for (int i = 0;i <list.size() ; i++) {
                if (num==list.get(i).getNum()) {
                    list3.get(i).setNumfabulous((list3.get(i).getNumfabulous()+1));
                }
            }
            System.out.println("点赞成功");
            System.out.println("输入0返回");
            int b=sc.nextInt();
            if (b==0) {
                orderFood(list,list2,list3);
            }
        }
        
        public static void deletFood(ArrayList<Food> list,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){
            //删除订单
        System.out.println("请输入要删除的订单序号");
        int a =sc.nextInt();
        for (int i = 0; i <list2.size() ; i++) {
            if (a==list2.get(i).getNum()) {
                list2.remove(list2.get(i));
            }
        }
        System.out.println("删除订单成功!");
        System.out.println("输入0返回");
        int b=sc.nextInt();
        if (b==0) {
            orderFood(list,list2,list3);
        }
    }
        public static void signFor(ArrayList<Food> list,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//签收订单
        System.out.println("请输入要签收的订单序号:");
        int sign=sc.nextInt();
        for (int i = 0; i <list.size() ; i++) {
            if (sign==(list.get(i).getNum())){
                list2.get(i).setState("已签收");
    }
        }
        System.out.println("签收订单成功!");
        System.out.println("输入0返回");
        int a=sc.nextInt();
        if (a==0) {
            orderFood(list,list2,list3);
        }
    }
    public static void seeFood(ArrayList<Food> list,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//查看餐带
    System.out.println("*******查看餐带******");
    System.out.println("          序号        订餐人       餐品信息       送餐日期  " + "    送餐地址       总金额        订单状态"  );
    Iterator<SeeFood> it = list2.iterator();
    while (it.hasNext()) {
        System.out.println(it.next());
    }
    System.out.println("请输入0返回");
    int a=sc.nextInt();
    if (a==0){
        orderFood(list,list2,list3);
    }
    }
    public static void orderingFood(ArrayList<Food> list1,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//)订餐
        System.out.println("我要订餐");
    System.out.println("请输入订餐人的姓名:");
    String name=sc.next();
    System.out.println("序号    菜名    单价");
    Iterator<Food> it = list1.iterator();
    while (it.hasNext()) {
        System.out.println(it.next());

    }
    System.out.println("请输入您要点的菜品编号");
    int num=sc.nextInt();
    System.out.println("请选择您需要的份数");
    int num1=sc.nextInt();
    foodDelilvery();
    int num3=date;//送餐时间
    System.out.println("请输入送餐地址");
    String address=sc.next();
    System.out.println("订餐成功!");
    number++;//餐带序号
    System.out.print("您订的是:");
    String food=list1.get(num-1).getName();//菜品
    System.out.println(food+"  "+num1+"份");
    System.out.println("送餐时间:"+date+"点");
    double money=list1.get(num-1).getPrice()*num1;//餐费
    System.out.println("餐费:"+money
    +"元,送餐费6.0元,总计:"+(money+6)+"元");
    //姓名,份数,时间,地址,菜品,餐费
    list2.add(new SeeFood(number,name,food,num1,num3,address,(money+6),"已预定"));
    System.out.println("输入0返回:");
    String input=sc.next();
    if (input.equals("0")){
        orderFood(list1,list2,list3);
    }else {
        System.out.println("欢迎下次光临");
    }

}



static public void foodDelilvery(){//送餐时间
    System.out.println("请输入送餐的时间(送餐时间是10点至20点间整点送餐):");
    int num2=sc.nextInt();
    date=num2;
    if (num2<10||num2>20){
        System.out.println("不在送餐时间!");
        foodDelilvery();
    }

}
}




判断,循环,链表操作

java基础 QAQ