Java如何实现queue队列?

来源:互联网 发布:淘宝什么是权重 编辑:程序博客网 时间:2024/06/05 07:17

演示如何在雇员结构实现一个队列。

代码块

import java.util.LinkedList;class GenQueue<E> {    private LinkedList<E> list = new LinkedList<E>();    //将指定元素添加到此列表的结尾    public void enqueue(E item) {        list.addLast(item);    }    //获取并移除此列表的头(第一个元素)    public E dequeue() {        return list.poll();    }    //list.isEmpty()如果列表不包含元素,则返回 true    public boolean hasItems() {        return !list.isEmpty(); //当列表包含元素,返回true    }    //返回此列表的元素数    public int size() {        return list.size();    }    public void addItems(GenQueue<? extends E> q) {        while (q.hasItems())            list.addLast(q.dequeue());    }}public class GenQueueTest {    public static void main(String[] args) {        //定义类GenQueue<Employee>        GenQueue<Employee> empList;        //实例化变量empList        empList = new GenQueue<Employee>();        ////定义类GenQueue<HourlyEmployee>        GenQueue<HourlyEmployee> hList;        //实例化变量hList        hList = new GenQueue<HourlyEmployee>();        hList.enqueue(new HourlyEmployee("T", "D"));        hList.enqueue(new HourlyEmployee("G", "B"));        hList.enqueue(new HourlyEmployee("F", "S"));        empList.addItems(hList);        System.out.println("The employees' names are:");        while (empList.hasItems()) {            Employee emp = empList.dequeue();            System.out.println(emp.firstName + " " + emp.lastName);        }    }}//Employee类class Employee {    //属性    public String lastName;    public String firstName;    //无参构造函数    public Employee() {    }    //有参构造函数    public Employee(String last, String first) {        this.lastName = last;        this.firstName = first;    }    public String toString() {        return firstName + " " + lastName;    }}//钟点工HourlyEmployee类class HourlyEmployee extends Employee {    //属性    public double hourlyRate;    //有参构造函数    public HourlyEmployee(String last, String first) {        super(last, first);    }}运行结果:The employees' names are:D TB GS F
原创粉丝点击