zoukankan      html  css  js  c++  java
  • 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("请选择:");
        }
    }

    运行结果:

  • 相关阅读:
    201521123104《Java程序设计》第7周学习总结
    201521123104 《Java程序设计》第6周学习总结
    201521123104 《Java程序设计》第5周学习总结
    201521123104《Java程序设计》第4周学习总结
    201521123104《JAVA程序设计》第三周学习总结
    201521123104 《JAVA程序设计》第二周学习总结
    201521123103 《java学习笔记》 第十二周学习总结
    201521123103 《Java学习笔记》 第十一周学习总结
    201521123103 《java学习笔记》 第十周学习总结
    201521123103 《Java学习笔记》 第九周学习总结
  • 原文地址:https://www.cnblogs.com/RootVount/p/14069909.html
Copyright © 2011-2022 走看看