The Generic Queue Class : Queue « Collections Data Structure « Java






The Generic Queue Class

      


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();
  }

  public boolean hasItems() {
    return !list.isEmpty();
  }

  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> empList;
    empList = new GenQueue<Employee>();

    GenQueue<HourlyEmployee> 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);

    while (empList.hasItems()) {
      Employee emp = empList.dequeue();
      System.out.println(emp.firstName + " " + emp.lastName);
    }
  }
}

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;
  }
}

class HourlyEmployee extends Employee {
  public double hourlyRate;

  public HourlyEmployee(String last, String first) {
    super(last, first);
  }
}

   
    
    
    
    
  








Related examples in the same category

1.Priority queuePriority queue
2.Queue data structureQueue data structure
3.Convert a Queue to a List
4.Create a queue using LinkedList class
5.Simple Queue (FIFO) based on LinkedList
6.Blocking Queue
7.Circular Queue
8.Circular Queue extends AbstractList
9.How to extend the collections framework
10.An unbounded {@link TransferQueue} based on linked nodes.
11.This class implements the data structures necessary for an ArrayQueue
12.A circular queue from mina
13.An unbounded TransferQueue based on linked nodes.
14.Rotating queue of fixed size.
15.Allows threads to communicate asynchronously by putting messages into and reading messages out of a synchronized queue.