com.sosnoski.util.queue
Class ObjectQueue

java.lang.Object
  |
  +--com.sosnoski.util.GrowableBase
        |
        +--com.sosnoski.util.queue.QueueBase
              |
              +--com.sosnoski.util.queue.ObjectQueue

public class ObjectQueue
extends QueueBase

Growable circular queue of Objects. This implementation is unsynchronized in order to provide the best possible performance for typical usage scenarios, so explicit synchronization must be implemented by a wrapper class or directly by the application in cases where instances are modified in a multithreaded environment. See the base classes for other details of the implementation.

Version:
1.1
Author:
Dennis M. Sosnoski

Field Summary
protected  java.lang.Object[] m_baseArray
          The underlying array used for storing the data.
 
Fields inherited from class com.sosnoski.util.queue.QueueBase
m_emptyOffset, m_fillOffset
 
Fields inherited from class com.sosnoski.util.GrowableBase
DEFAULT_SIZE, m_countLimit, m_maximumGrowth
 
Constructor Summary
ObjectQueue()
          Default constructor.
ObjectQueue(int size)
          Constructor with partial specification.
ObjectQueue(int size, int growth)
          Constructor with full specification.
ObjectQueue(ObjectQueue base)
          Copy (clone) constructor.
 
Method Summary
 void add(java.lang.Object item)
          Add an item at the end of the queue.
 java.lang.Object clone()
          Duplicates the object with the generic call.
protected  java.lang.Object getArray()
          Get the backing array.
 java.util.Iterator iterator()
          Return an iterator for the Objects in this queue.
 java.lang.Object remove()
          Remove an item from the start of the queue.
protected  void setArray(java.lang.Object array)
          Set the backing array.
 java.lang.Object[] toArray()
          Constructs and returns a simple array containing the same data as held in this growable array.
 java.lang.Object[] toArray(java.lang.Class type)
          Constructs and returns a type-specific array containing the same data as held in this growable generic array.
 
Methods inherited from class com.sosnoski.util.queue.QueueBase
buildArray, clear, discard, getAddIndex, getRemoveIndex, isEmpty, resizeCopy, size
 
Methods inherited from class com.sosnoski.util.GrowableBase
buildArray, discardValues, ensureCapacity, growArray
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_baseArray

protected java.lang.Object[] m_baseArray
The underlying array used for storing the data.
Constructor Detail

ObjectQueue

public ObjectQueue(int size,
                   int growth)
Constructor with full specification.
Parameters:
size - number of elements initially allowed in queue
growth - maximum size increment for growing queue

ObjectQueue

public ObjectQueue(int size)
Constructor with partial specification.
Parameters:
size - number of elements initially allowed in queue

ObjectQueue

public ObjectQueue()
Default constructor.

ObjectQueue

public ObjectQueue(ObjectQueue base)
Copy (clone) constructor.
Parameters:
base - instance being copied
Method Detail

getArray

protected java.lang.Object getArray()
Get the backing array. This method is used by the type-agnostic base class code to access the array used for type-specific storage.
Overrides:
getArray in class GrowableBase
Returns:
backing array object

setArray

protected void setArray(java.lang.Object array)
Set the backing array. This method is used by the type-agnostic base class code to set the array used for type-specific storage.
Overrides:
setArray in class GrowableBase
Parameters:
backing - array object

add

public void add(java.lang.Object item)
Add an item at the end of the queue. If necessary, the array used for storing the queue data is grown before storing the added item.
Parameters:
item - item to be added

remove

public java.lang.Object remove()
Remove an item from the start of the queue.
Returns:
item removed from queue
Throws:
IllegalStateException - on attempt to remove an item from an empty queue

iterator

public final java.util.Iterator iterator()
Return an iterator for the Objects in this queue. The iterator returns all values in order, but is not "live". Values added to the queue during iteration will not be returned by the iteration, and any other changes to the queue while the iteration is in progress will give indeterminant results.
Returns:
iterator for values in queue

toArray

public java.lang.Object[] toArray()
Constructs and returns a simple array containing the same data as held in this growable array.
Returns:
array containing a copy of the data

toArray

public java.lang.Object[] toArray(java.lang.Class type)
Constructs and returns a type-specific array containing the same data as held in this growable generic array. All values in this array must be assignment compatible with the specified type.
Parameters:
type - element type for constructed array
Returns:
array containing a copy of the data

clone

public java.lang.Object clone()
Duplicates the object with the generic call.
Overrides:
clone in class java.lang.Object
Returns:
a copy of the object


Company Web Site

XML Benchmark Home