以患者到医院就诊为背景,使用列表对象(ArrayList)和泛型机制实现就诊排队叫号系统

285 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

要求如下:

  1. 定义叫号器类QueueCaller,包含成员变量ArrayList类型的queue(排队对象)。该类实现功能如下:a)患者取号排队方法fetchNumber,加入等待队列,并显示当前等待人数;b) 实现负责叫号方法callNumber,叫号后移除排队首患者,并显示其他等候人员。(注意:要求列表中以字符串类型存储患者姓名。)
  2. 编写测试类,实现下图效果: 在这里插入图片描述
 package com.zhangyufan.test;
 ​
 import java.util.ArrayList;
 ​
 public class TestQueueCaller {
 ​
     public static void main(String[] args) {
         QueueCaller qc = new QueueCaller();
         for (int i = 1; i <= 3; i++) {
             qc.fetchNumber("张山-" + i);
         }
         while (qc.size() != 0) {
             qc.callNumber();
         }
     }
 ​
 }
 ​
 class QueueCaller {
     private ArrayList<String> queue;
 ​
     public QueueCaller() {
         queue = new ArrayList<String>();
     }
 ​
     public int size() {
         return queue.size();
     }
 ​
     public void fetchNumber(String patient) {
         queue.add(patient);
         System.out.println(patient + "前面还有" + (size() - 1) + "位在等候就诊。");
     }
 ​
     public void callNumber() {
         if (queue.size() != 0)
             System.out.println("请患者:" + queue.get(0) + "到诊室就诊!");
         queue.remove(0);
         if (queue.size() < 1) {
             return;
         } else {
             for (int i = 0; i < queue.size(); i++)
                 System.out.println(queue.get(i) + "候诊中");
         }
     }
 }