in scala/collection/immutable
class Queue

class Queue[A](elem: A*)
extends Seq[A]
with ScalaObject

Queue objects implement data structures that allow to insert and retrieve elements in a first-in-first-out (FIFO) manner.
Author:
Erik Stenman
Version:
1.0, 08/07/2003

Field Summary
protected val in: List[A]
protected val out: List[A]

Method Summary
  def +[B >: A](elem: B): Queue[B]
     Creates a new queue with element added at the end of the old queue.
  def +[B >: A](iter: Iterable[B]): Queue[B]
     Returns a new queue with all all elements provided by an Iterable object added at the end of the queue.
  def apply(n: Int): A
     Returns the n-th element of this queue.
  def dequeue: Tuple2[A,Queue[A]]
     Returns a tuple with the first element in the queue, and a new queue with this element removed.
  def elements: Iterator[A]
     Returns the elements in the list as an iterator
  def enqueue[B >: A](elems: B*): Queue[B]
     Returns a new queue with all elements added.
override def equals(o: Any): Boolean
     Compares two queues for equality by comparing each element in the queues.
  def front: A
     Returns the first element in the queue, or throws an error if there is no element contained in the queue.
override def hashCode(): Int
  def isEmpty: Boolean
     Checks if the queue is empty.
protected def itToList[B >: A](elems: Iterator[B]): List[B]
  def length: Int
     Returns the length of the queue.
protected def mkQueue[A](i: List[A], o: List[A]): Queue[A]
  def mkString(start: String, sep: String, end: String): String
     Returns a string representation of this queue.
override def toString(): String
     Returns a string representation of this queue.

Methods inherited from java/lang/Object-class
clone, eq, finalize, getClass, notify, notifyAll, synchronized, wait, wait, wait

Methods inherited from scala/Any-class
!=, ==, asInstanceOf, isInstanceOf, match

Methods inherited from scala/Iterable-class
/:, :\, exists, find, foldLeft, foldRight, forall, foreach, sameElements

Methods inherited from scala/Seq-class
copyToArray, drop, indexOf, isDefinedAt, lastIndexOf, stringPrefix, subseq, take, toList

Field Detail

in

  protected val in: List[A]

out

  protected val out: List[A]
Method Detail

itToList

  protected def itToList[B >: A](elems: Iterator[B]): List[B]

mkQueue

  protected def mkQueue[A](i: List[A], o: List[A]): Queue[A]

apply

  def apply(n: Int): A
Returns the n-th element of this queue. The first element is at position 0.
Parameters:
n - index of the element to return
Returns:
the element at position n in this list.
Throws:
java.lang.RuntimeException if the list is too short.

elements

  def elements: Iterator[A]
Returns the elements in the list as an iterator

isEmpty

  def isEmpty: Boolean
Checks if the queue is empty.
Returns:
true, iff there is no element in the queue.

length

  def length: Int
Returns the length of the queue.

+

  def +[B >: A](elem: B): Queue[B]
Creates a new queue with element added at the end of the old queue.
Parameters:
elem - the element to insert

+

  def +[B >: A](iter: Iterable[B]): Queue[B]
Returns a new queue with all all elements provided by an Iterable object added at the end of the queue. The elements are prepended in the order they are given out by the iterator.
Parameters:
iter - an iterable object

enqueue

  def enqueue[B >: A](elems: B*): Queue[B]
Returns a new queue with all elements added.
Parameters:
elems - the elements to add.

dequeue

  def dequeue: Tuple2[A,Queue[A]]
Returns a tuple with the first element in the queue, and a new queue with this element removed.
Returns:
the first element of the queue.

front

  def front: A
Returns the first element in the queue, or throws an error if there is no element contained in the queue.
Returns:
the first element.

mkString

  def mkString(start: String, sep: String, end: String): String
Returns a string representation of this queue. The resulting string begins with the string start and is finished by the string end. Inside, the string representations of elements (w.r.t. the method toString()) are separated by the string sep.

Ex:
Queue(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"

Parameters:
start - starting string.
sep - separator string.
end - ending string.
Returns:
a string representation of this list.

toString

  override def toString(): String
Returns a string representation of this queue.

equals

  override def equals(o: Any): Boolean
Compares two queues for equality by comparing each element in the queues.
Returns:
true, iff the two queues are structurally equal.

hashCode

  override def hashCode(): Int