de.grogra.xl.util
Class ShortList

java.lang.Object
  extended by de.grogra.xl.util.ShortList
All Implemented Interfaces:
ShortConsumer, VoidToShortGenerator, java.io.Serializable, java.lang.Cloneable

public class ShortList
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable, ShortConsumer, VoidToShortGenerator

A ShortList represents a list of short values. It provides list- and stack-oriented methods for insertion, addition, and removal, of values. The methods are not thread-safe.

Author:
Ole Kniemeyer
See Also:
Serialized Form

Field Summary
 short[] elements
          The array holding the elements.
 int size
          The size of this list.
 
Constructor Summary
ShortList()
          Constructs a new ShortList.
ShortList(int capacity)
          Constructs a new ShortList with a given initial capacity.
ShortList(short[] elements)
          Constructs a new ShortList whose elements are a copy of elements.
 
Method Summary
 void add(int index, short o)
          Inserts o at position index to this list.
 boolean add(short o)
          Adds o as last element to this list.
 ShortList addAll(short[] v, int begin, int length)
          Appends length components of v to this list, starting at index begin.
 ShortList addAll(ShortList v)
          Appends all elements of v to this list.
 void addIfNotContained(short o)
          Adds o as last element to this list if is not yet contained as reported by contains(short).
static void arraycopy(short[] src, int srcIndex, short[] dest, int destIndex, int length)
           
 int binarySearch(short value)
          Searches this list for the specified value using the binary search algorithm.
static int binarySearch(short[] array, short value)
           
static int binarySearch(short[] array, short value, int fromIndex, int toIndex)
           
 void clear()
          Removes all of the elements from this list.
static void clear(short[] array, int index, int length)
           
 java.lang.Object clone()
           
 void consume(short value)
          Receives a value of type short.
 boolean contains(short o)
          Returns true iff this list contains the given element o.
 void ensureCapacity(int capacity)
          Ensures a capacity of the internal array of at least capacity.
 boolean equals(java.lang.Object o)
           
 void evaluateShort(ShortConsumer cons)
          This generator method yields all values to cons.
 short get(int index)
          Returns the list element at index.
 int hashCode()
           
 int indexOf(short o)
          Returns the index of o in this list.
 boolean isEmpty()
          Returns if this list is empty, i.e., if its size is zero.
 int lastIndexOf(short o)
          Returns the last index of o in this list.
 short peek(int index)
          Returns the list element at index as seen from the top, i.e., at absolute position size - index.
 short pop()
          Removes and returns the object at the top of this list.
 ShortList push(short o)
          Pushes o on top of this list, i.e., as last element.
 ShortList push(short o1, short o2)
          Pushes o1 and o2 on top of this list, i.e., as last elements.
 ShortList push(short o1, short o2, short o3)
          Pushes o1 ... o3 on top of this list, i.e., as last elements.
 boolean remove(short o)
          Removes the element o.
 short removeAt(int index)
          Removes the element at position index.
 short set(int index, short o)
          Sets the element at position index to o.
 void setSize(int size)
          Sets the size of this list to the given value.
 int size()
          Returns the size of this list.
 short[] toArray()
          Returns an array containing the elements of this list.
 short[] toArray(short[] array)
          Returns an array containing the elements of this list.
 java.lang.String toString()
           
 void trimToSize()
          Trims the capacity of this list to be its current size.
 void values(ShortConsumer cons)
          This method is an alias for evaluateShort(de.grogra.xl.lang.ShortConsumer).
 void writeTo(java.nio.ShortBuffer out)
           
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

elements

public transient short[] elements
The array holding the elements. Only the components from 0 to size - 1 are valid. Direct operation on this array has to be designed carefully to avoid inconsistencies.


size

public int size
The size of this list. Direct operation on this field has to be designed carefully to avoid inconsistencies.

Constructor Detail

ShortList

public ShortList()
Constructs a new ShortList.


ShortList

public ShortList(int capacity)
Constructs a new ShortList with a given initial capacity.

Parameters:
capacity - the initial capacity

ShortList

public ShortList(short[] elements)
Constructs a new ShortList whose elements are a copy of elements.

Parameters:
elements - the initial elements of the list
Method Detail

add

public void add(int index,
                short o)
Inserts o at position index to this list. If index is not less than size, the list is enlarged and filled with 0-values before.

Parameters:
index - the insert position
o - the value to insert

add

public boolean add(short o)
Adds o as last element to this list.

Parameters:
o - the value to add
Returns:
true

addAll

public ShortList addAll(short[] v,
                        int begin,
                        int length)
Appends length components of v to this list, starting at index begin.

Parameters:
v - the array of elements to add
begin - the array index to begin with
length - the number of elements to add
Returns:
this list

addAll

public ShortList addAll(ShortList v)
Appends all elements of v to this list.

Parameters:
v - the list of elements to add
Returns:
this list

addIfNotContained

public void addIfNotContained(short o)
Adds o as last element to this list if is not yet contained as reported by contains(short).

Parameters:
o - the value to add

arraycopy

public static void arraycopy(short[] src,
                             int srcIndex,
                             short[] dest,
                             int destIndex,
                             int length)

binarySearch

public int binarySearch(short value)
Searches this list for the specified value using the binary search algorithm. This list has to be sorted in ascending order.

Parameters:
value - the value to be searched for
Returns:
index of the searched value, if it is contained in this list; otherwise, (-(insertion point) - 1). The insertion point is defined as the point at which the value would be inserted into the list: the index of the first element greater than the value, or size(), if all elements in the list are less than the specified value.

binarySearch

public static int binarySearch(short[] array,
                               short value)

binarySearch

public static int binarySearch(short[] array,
                               short value,
                               int fromIndex,
                               int toIndex)

clear

public void clear()
Removes all of the elements from this list. The list will be empty after this call returns.


clear

public static void clear(short[] array,
                         int index,
                         int length)

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object

consume

public void consume(short value)
Description copied from interface: ShortConsumer
Receives a value of type short.

Specified by:
consume in interface ShortConsumer

contains

public boolean contains(short o)
Returns true iff this list contains the given element o.

Parameters:
o - a value
Returns:
true iff o is contained

ensureCapacity

public void ensureCapacity(int capacity)
Ensures a capacity of the internal array of at least capacity.

Parameters:
capacity - the desired minimum capacity

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object

evaluateShort

public void evaluateShort(ShortConsumer cons)
This generator method yields all values to cons.

Specified by:
evaluateShort in interface VoidToShortGenerator
Parameters:
cons - the consumer which receives the values

get

public short get(int index)
Returns the list element at index. If index is not less than size, 0 is returned.

Parameters:
index - the position
Returns:
the value at index

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

indexOf

public int indexOf(short o)
Returns the index of o in this list.

Parameters:
o - a value
Returns:
the index of o, or -1 of o is not contained

isEmpty

public final boolean isEmpty()
Returns if this list is empty, i.e., if its size is zero.

Returns:
true iff this list is empty

lastIndexOf

public int lastIndexOf(short o)
Returns the last index of o in this list.

Parameters:
o - a value
Returns:
the index of o, or -1 of o is not contained

peek

public short peek(int index)
Returns the list element at index as seen from the top, i.e., at absolute position size - index. Thus, the topmost element has index 1.

Parameters:
index - the position as seen from the top
Returns:
the value at that position

pop

public short pop()
Removes and returns the object at the top of this list.

Returns:
the removed object from the top of this list

push

public final ShortList push(short o)
Pushes o on top of this list, i.e., as last element.

Parameters:
o - the value to push
Returns:
this list

push

public final ShortList push(short o1,
                            short o2)
Pushes o1 and o2 on top of this list, i.e., as last elements. The effect is the same as the invocation list.push(o1).push(o2).

Parameters:
o1 - the first value to push
o2 - the second value to push
Returns:
this list

push

public final ShortList push(short o1,
                            short o2,
                            short o3)
Pushes o1 ... o3 on top of this list, i.e., as last elements. The effect is the same as the invocation list.push(o1).push(o2).push(o3).

Parameters:
o1 - the first value to push
o2 - the second value to push
o3 - the third value to push
Returns:
this list

remove

public boolean remove(short o)
Removes the element o. The last occurence of o in this list is removed.

Parameters:
o - the element to be removed
Returns:
true iff o was found and removed from the list

removeAt

public short removeAt(int index)
Removes the element at position index.

Parameters:
index - the position of the element to be removed
Returns:
the value of the removed element

set

public short set(int index,
                 short o)
Sets the element at position index to o. If index is not less than size, the list is enlarged and filled with 0-values before.

Parameters:
index - the position
o - the new value
Returns:
the old value at index

setSize

public void setSize(int size)
Sets the size of this list to the given value. If the new size is greater than the old size, the new elements are initialized with 0-values.

Parameters:
size - the new size

size

public final int size()
Returns the size of this list.

Returns:
the size

toArray

public short[] toArray()
Returns an array containing the elements of this list.

Returns:
an array copy of this list

toArray

public short[] toArray(short[] array)
Returns an array containing the elements of this list. The type of the returned array is that of the specified array. If this list fits in the specified array, it is returned therein. Otherwise, a new array is allocated whose length is the size of this list's size, the values of this list are copied into the new array, and this array is returned.

If there is room for an additional element in the array, a 0-value is written behind the last copied element.

Parameters:
array - an array to use
Returns:
an array copy of this list

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

trimToSize

public void trimToSize()
Trims the capacity of this list to be its current size.


values

public void values(ShortConsumer cons)
This method is an alias for evaluateShort(de.grogra.xl.lang.ShortConsumer).


writeTo

public void writeTo(java.nio.ShortBuffer out)