Module xl.core

Class IntList

java.lang.Object
de.grogra.xl.util.IntList
All Implemented Interfaces:
IntConsumer, VoidToIntGenerator, Serializable, Cloneable

public class IntList extends Object implements Cloneable, Serializable, IntConsumer, VoidToIntGenerator
A IntList represents a list of int 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:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    int[]
    The array holding the elements.
    int
    The size of this list.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new IntList.
    IntList(int capacity)
    Constructs a new IntList with a given initial capacity.
    IntList(int[] elements)
    Constructs a new IntList whose elements are a copy of elements.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    add(int o)
    Adds o as last element to this list.
    void
    add(int index, int o)
    Inserts o at position index to this list.
    addAll(int[] v, int begin, int length)
    Appends length components of v to this list, starting at index begin.
    Appends all elements of v to this list.
    void
    Adds o as last element to this list if is not yet contained as reported by contains(int).
    static void
    arraycopy(int[] src, int srcIndex, int[] dest, int destIndex, int length)
     
    int
    binarySearch(int value)
    Searches this list for the specified value using the binary search algorithm.
    static int
    binarySearch(int[] array, int value)
     
    static int
    binarySearch(int[] array, int value, int fromIndex, int toIndex)
     
    void
    Removes all of the elements from this list.
    static void
    clear(int[] array, int index, int length)
     
     
    void
    consume(int value)
    Receives a value of type int.
    boolean
    contains(int 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
     
    void
    This generator method yields all values to cons.
    int
    get(int index)
    Returns the list element at index.
    int
     
    int
    indexOf(int o)
    Returns the index of o in this list.
    final boolean
    Returns if this list is empty, i.e., if its size is zero.
    int
    lastIndexOf(int o)
    Returns the last index of o in this list.
    int
    peek(int index)
    Returns the list element at index as seen from the top, i.e., at absolute position size - index.
    int
    pop()
    Removes and returns the object at the top of this list.
    final IntList
    push(int o)
    Pushes o on top of this list, i.e., as last element.
    final IntList
    push(int o1, int o2)
    Pushes o1 and o2 on top of this list, i.e., as last elements.
    final IntList
    push(int o1, int o2, int o3)
    Pushes o1 ... o3 on top of this list, i.e., as last elements.
    boolean
    remove(int o)
    Removes the element o.
    int
    removeAt(int index)
    Removes the element at position index.
    int
    set(int index, int o)
    Sets the element at position index to o.
    void
    setSize(int size)
    Sets the size of this list to the given value.
    final int
    Returns the size of this list.
    int[]
    Returns an array containing the elements of this list.
    int[]
    toArray(int[] array)
    Returns an array containing the elements of this list.
     
    void
    Trims the capacity of this list to be its current size.
    void
    This method is an alias for evaluateInt(de.grogra.xl.lang.IntConsumer).
    void
     

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • elements

      public transient int[] 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 Details

    • IntList

      public IntList(int capacity)
      Constructs a new IntList with a given initial capacity.
      Parameters:
      capacity - the initial capacity
    • IntList

      public IntList()
      Constructs a new IntList.
    • IntList

      public IntList(int[] elements)
      Constructs a new IntList whose elements are a copy of elements.
      Parameters:
      elements - the initial elements of the list
  • Method Details

    • clone

      public Object clone()
      Overrides:
      clone in class Object
    • ensureCapacity

      public void ensureCapacity(int capacity)
      Ensures a capacity of the internal array of at least capacity.
      Parameters:
      capacity - the desired minimum capacity
    • trimToSize

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

      public final IntList push(int 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 IntList push(int o1, int 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 IntList push(int o1, int o2, int 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
    • add

      public boolean add(int o)
      Adds o as last element to this list.
      Parameters:
      o - the value to add
      Returns:
      true
    • add

      public void add(int index, int 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
    • addIfNotContained

      public void addIfNotContained(int o)
      Adds o as last element to this list if is not yet contained as reported by contains(int).
      Parameters:
      o - the value to add
    • addAll

      public IntList addAll(IntList v)
      Appends all elements of v to this list.
      Parameters:
      v - the list of elements to add
      Returns:
      this list
    • addAll

      public IntList addAll(int[] 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
    • removeAt

      public int 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
    • remove

      public boolean remove(int 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
    • set

      public int set(int index, int 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
    • get

      public int 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
    • peek

      public int 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
    • contains

      public boolean contains(int o)
      Returns true iff this list contains the given element o.
      Parameters:
      o - a value
      Returns:
      true iff o is contained
    • indexOf

      public int indexOf(int 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
    • lastIndexOf

      public int lastIndexOf(int 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
    • binarySearch

      public int binarySearch(int 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(int[] array, int value)
    • binarySearch

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

      public void writeTo(IntBuffer out)
    • clear

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

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

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

      public int pop()
      Removes and returns the object at the top of this list.
      Returns:
      the removed object from the top of this list
    • 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
    • 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
    • toArray

      public int[] toArray()
      Returns an array containing the elements of this list.
      Returns:
      an array copy of this list
    • toArray

      public int[] toArray(int[] 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 String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • consume

      public void consume(int value)
      Description copied from interface: IntConsumer
      Receives a value of type int.
      Specified by:
      consume in interface IntConsumer
    • evaluateInt

      public void evaluateInt(IntConsumer cons)
      This generator method yields all values to cons.
      Specified by:
      evaluateInt in interface VoidToIntGenerator
      Parameters:
      cons - the consumer which receives the values
    • values

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