Simple Queue (FIFO) based on LinkedList : Queue « Collections Data Structure « Java






Simple Queue (FIFO) based on LinkedList

    
// Copyright (c) 2003-2009, Jodd Team (jodd.org). All Rights Reserved.


import java.util.LinkedList;

/**
 * Simple Queue (FIFO) based on LinkedList.
 */
public class SimpleQueue<E> {

  private LinkedList<E> list = new LinkedList<E>();

  /**
   * Puts object in queue.
   */
  public void put(E o) {
    list.addLast(o);
  }

  /**
   * Returns an element (object) from queue.
   *
   * @return element from queue or <code>null</code> if queue is empty
   */
  public E get() {
    if (list.isEmpty()) {
      return null;
    }
    return list.removeFirst();
  }

  /**
   * Returns all elements from the queue and clears it.
   */
  public Object[] getAll() {
    Object[] res = new Object[list.size()];
    for (int i = 0; i < res.length; i++) {
      res[i] = list.get(i);
    }
    list.clear();
    return res;
  }


  /**
   * Peeks an element in the queue. Returned elements is not removed from the queue.
   */
  public E peek() {
    return list.getFirst();
  }

  /**
   * Returns <code>true</code> if queue is empty, otherwise <code>false</code>
   */
  public boolean isEmpty() {
    return list.isEmpty();
  }

  /**
   * Returns queue size.
   */
  public int size() {
    return list.size();
  }
}

   
    
    
    
  








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.The Generic Queue Class
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.