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("请选择:"); } }
运行结果: