• JAVA设计一个基于ArrayList类的队列类,并实现相关操作


    最近写JAVA作业,让我觉得头秃,还是建立一些随笔吧。

    代码要实现的内容如题目所述。

    import java.util.*;
    
    class Queue {
        ArrayList<Object> qlist = new ArrayList<>();
    
        Queue() {
        }
    
        // 元素入队
        public void push(Object o) {
            qlist.add(o);
        }
    
        // 元素出队
        public Object pop() {
            if (qlist != null && qlist.size() > 0) {
                Object o = qlist.get(0);
                qlist.remove(0);
                return o;
            }
            return null;
        }
    
        // 返回队尾元素
        public Object getEnd() {
            return qlist.get(getQSize() - 1);
        }
    
        // 返回队头元素
        public Object getHead() {
            return qlist.get(0);
        }
    
        // 判断队列元素是否为空
        public boolean isQEmpty() {
            return qlist.isEmpty();
        }
    
        // 输出队列内元素个数
        public int getQSize() {
            return qlist == null ? 0 : qlist.size();
        }
    
        // 遍历
        public void traverse() {
            System.out.print("队列为:");
            for (Object o : qlist) {
                System.out.print(o + " ");
            }
            System.out.println();
        }
    }
    
    public class QueueAL {
    
        public static void main(String[] args) {
            Queue q = new Queue();
            Scanner input = new Scanner(System.in);
            display();
            int con = 1;
            do{
                int choice = input.nextInt();
                switch (choice) {
                case 1:
                    System.out.println("请输入要入队的元素:");
                    Integer value = input.nextInt();
                    q.push(value);
                    q.traverse();
                    display();
                    break;
                case 2:
                    if (!q.isQEmpty()) {
                        q.pop();
                        q.traverse();
                    } else
                        System.out.println("队列为空");
                    display();
                    break;
                case 3:
                    System.out.println("队列尾元素为 " + q.getEnd());
                    display();
                    break;
                case 4:
                    System.out.println("队列头元素为 " + q.getHead());
                    display();
                    break;
                case 5:
                    System.out.println("共有 " + q.getQSize() + " 个元素");
                    display();
                    break;
                case 6:
                    if (q.isQEmpty())
                        System.out.println("队列为空!");
                    else
                        System.out.println("队列非空!");
                    display();
                    break;
                case 0:
                    System.exit(0);
                }
            }while(con != 0);    
            input.close();
        }
    
        public static void display() {
            System.out.println("------菜            单---------------");
            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("------0:退出-------------------------");
            System.out.println("请选择:");
        }
    }

    运行结果:

  • 相关阅读:
    全球十大主流ERP厂商,看看你是不是在用
    S/4HANA 2020升级项目终于上线了
    Qt项目升级到Qt6经验总结
    Qt编写可视化大屏电子看板系统26模块4模具进度
    Qt数据库应用16通用数据库采集
    Qt编写地图综合应用59经纬度坐标纠偏
    Qt编写地图综合应用60覆盖物坐标和搜索
    Qt数据库应用15通用数据库同步
    Qt编写可视化大屏电子看板系统25模块3设备监控
    Qt数据库应用14超级自定义委托
  • 原文地址:https://www.cnblogs.com/RootVount/p/14069909.html
Copyright © 2020-2023  润新知