Class AbstractIntList

All Implemented Interfaces:
IntCollection, IntIterable, IntList, IntStack, Stack<Integer>, Comparable<List<? extends Integer>>, Iterable<Integer>, Collection<Integer>, List<Integer>
Direct Known Subclasses:
AbstractIntList.IntSubList, IntArrayList, IntLists.Singleton

public abstract class AbstractIntList
extends AbstractIntCollection
implements IntList, IntStack
An abstract class providing basic methods for lists implementing a type-specific list interface.

As an additional bonus, this class implements on top of the list operations a type-specific stack.

  • Method Details

    • add

      public void add​(int index, int k)
      Inserts the specified element at the specified position in this list (optional operation).

      This implementation always throws an UnsupportedOperationException.

      Specified by:
      add in interface IntList
      See Also:
      List.add(int,Object)
    • add

      public boolean add​(int k)
      Ensures that this collection contains the specified element (optional operation).

      This implementation always throws an UnsupportedOperationException.

      This implementation delegates to the type-specific version of List.add(int, Object).

      Specified by:
      add in interface IntCollection
      Specified by:
      add in interface IntList
      Overrides:
      add in class AbstractIntCollection
      See Also:
      Collection.add(Object)
    • removeInt

      public int removeInt​(int i)
      Removes the element at the specified position in this list (optional operation).

      This implementation always throws an UnsupportedOperationException.

      Specified by:
      removeInt in interface IntList
      See Also:
      List.remove(int)
    • set

      public int set​(int index, int k)
      Replaces the element at the specified position in this list with the specified element (optional operation).

      This implementation always throws an UnsupportedOperationException.

      Specified by:
      set in interface IntList
      See Also:
      List.set(int,Object)
    • addAll

      public boolean addAll​(int index, Collection<? extends Integer> c)
      Adds all of the elements in the specified collection to this list (optional operation).
      Specified by:
      addAll in interface List<Integer>
    • addAll

      public boolean addAll​(Collection<? extends Integer> c)

      This implementation delegates to the type-specific version if given a type-specific collection, otherwise is uses the implementation from AbstractCollection.

      This implementation delegates to the type-specific version of List.addAll(int, Collection).

      Specified by:
      addAll in interface Collection<Integer>
      Specified by:
      addAll in interface List<Integer>
      Overrides:
      addAll in class AbstractIntCollection
    • iterator

      public IntListIterator iterator()
      Returns a type-specific iterator on the elements of this collection.

      Note that this specification strengthens the one given in Iterable.iterator(), which was already strengthened in the corresponding type-specific class, but was weakened by the fact that this interface extends Collection.

      This implementation delegates to listIterator().

      Specified by:
      iterator in interface Collection<Integer>
      Specified by:
      iterator in interface IntCollection
      Specified by:
      iterator in interface IntIterable
      Specified by:
      iterator in interface IntList
      Specified by:
      iterator in interface Iterable<Integer>
      Specified by:
      iterator in interface List<Integer>
      Specified by:
      iterator in class AbstractIntCollection
      Returns:
      a type-specific iterator on the elements of this collection.
      See Also:
      Iterable.iterator()
    • listIterator

      public IntListIterator listIterator()
      Returns a type-specific list iterator on the list.

      This implementation delegates to listIterator(0).

      Specified by:
      listIterator in interface IntList
      Specified by:
      listIterator in interface List<Integer>
      See Also:
      List.listIterator()
    • listIterator

      public IntListIterator listIterator​(int index)
      Returns a type-specific list iterator on the list starting at a given index.

      This implementation is based on the random-access methods.

      Specified by:
      listIterator in interface IntList
      Specified by:
      listIterator in interface List<Integer>
      See Also:
      List.listIterator(int)
    • contains

      public boolean contains​(int k)
      Returns true if this list contains the specified element.

      This implementation delegates to indexOf().

      Specified by:
      contains in interface IntCollection
      Overrides:
      contains in class AbstractIntCollection
      See Also:
      List.contains(Object)
    • indexOf

      public int indexOf​(int k)
      Description copied from interface: IntList
      Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element.
      Specified by:
      indexOf in interface IntList
      See Also:
      List.indexOf(Object)
    • lastIndexOf

      public int lastIndexOf​(int k)
      Description copied from interface: IntList
      Returns the index of the last occurrence of the specified element in this list, or -1 if this list does not contain the element.
      Specified by:
      lastIndexOf in interface IntList
      See Also:
      List.lastIndexOf(Object)
    • size

      public void size​(int size)
      Description copied from interface: IntList
      Sets the size of this list.

      If the specified size is smaller than the current size, the last elements are discarded. Otherwise, they are filled with 0/null/false.

      Specified by:
      size in interface IntList
      Parameters:
      size - the new size.
    • subList

      public IntList subList​(int from, int to)
      Description copied from interface: IntList
      Returns a type-specific view of the portion of this list from the index from, inclusive, to the index to, exclusive.

      Note that this specification strengthens the one given in List.subList(int,int).

      Specified by:
      subList in interface IntList
      Specified by:
      subList in interface List<Integer>
      See Also:
      List.subList(int,int)
    • removeElements

      public void removeElements​(int from, int to)
      Removes (hopefully quickly) elements of this type-specific list.

      This is a trivial iterator-based implementation. It is expected that implementations will override this method with a more optimized version.

      Specified by:
      removeElements in interface IntList
      Parameters:
      from - the start index (inclusive).
      to - the end index (exclusive).
    • addElements

      public void addElements​(int index, int[] a, int offset, int length)
      Add (hopefully quickly) elements to this type-specific list.

      This is a trivial iterator-based implementation. It is expected that implementations will override this method with a more optimized version.

      Specified by:
      addElements in interface IntList
      Parameters:
      index - the index at which to add elements.
      a - the array containing the elements.
      offset - the offset of the first element to add.
      length - the number of elements to add.
    • addElements

      public void addElements​(int index, int[] a)
      Add (hopefully quickly) elements to this type-specific list.

      This implementation delegates to the analogous method for array fragments.

      Specified by:
      addElements in interface IntList
      Parameters:
      index - the index at which to add elements.
      a - the array containing the elements.
    • getElements

      public void getElements​(int from, int[] a, int offset, int length)
      Copies (hopefully quickly) elements of this type-specific list into the given array.

      This is a trivial iterator-based implementation. It is expected that implementations will override this method with a more optimized version.

      Specified by:
      getElements in interface IntList
      Parameters:
      from - the start index (inclusive).
      a - the destination array.
      offset - the offset into the destination array where to store the first element copied.
      length - the number of elements to be copied.
    • clear

      public void clear()

      This implementation delegates to removeElements(int, int).

      Specified by:
      clear in interface Collection<Integer>
      Specified by:
      clear in interface List<Integer>
      Overrides:
      clear in class AbstractCollection<Integer>
    • hashCode

      public int hashCode()
      Returns the hash code for this list, which is identical to List.hashCode().
      Specified by:
      hashCode in interface Collection<Integer>
      Specified by:
      hashCode in interface List<Integer>
      Overrides:
      hashCode in class Object
      Returns:
      the hash code for this list.
    • equals

      public boolean equals​(Object o)
      Specified by:
      equals in interface Collection<Integer>
      Specified by:
      equals in interface List<Integer>
      Overrides:
      equals in class Object
    • compareTo

      public int compareTo​(List<? extends Integer> l)
      Compares this list to another object. If the argument is a List, this method performs a lexicographical comparison; otherwise, it throws a ClassCastException.
      Specified by:
      compareTo in interface Comparable<List<? extends Integer>>
      Parameters:
      l - a list.
      Returns:
      if the argument is a List, a negative integer, zero, or a positive integer as this list is lexicographically less than, equal to, or greater than the argument.
      Throws:
      ClassCastException - if the argument is not a list.
    • push

      public void push​(int o)
      Description copied from interface: IntStack
      Pushes the given object on the stack.
      Specified by:
      push in interface IntStack
      Parameters:
      o - the object to push on the stack.
      See Also:
      Stack.push(Object)
    • popInt

      public int popInt()
      Description copied from interface: IntStack
      Pops the top off the stack.
      Specified by:
      popInt in interface IntStack
      Returns:
      the top of the stack.
      See Also:
      Stack.pop()
    • topInt

      public int topInt()
      Description copied from interface: IntStack
      Peeks at the top of the stack (optional operation).
      Specified by:
      topInt in interface IntStack
      Returns:
      the top of the stack.
      See Also:
      Stack.top()
    • peekInt

      public int peekInt​(int i)
      Description copied from interface: IntStack
      Peeks at an element on the stack (optional operation).
      Specified by:
      peekInt in interface IntStack
      Parameters:
      i - an index from the stop of the stack (0 represents the top).
      Returns:
      the i-th element on the stack.
      See Also:
      Stack.peek(int)
    • rem

      public boolean rem​(int k)
      Removes a single instance of the specified element from this collection, if it is present (optional operation).

      This implementation delegates to indexOf().

      Specified by:
      rem in interface IntCollection
      Overrides:
      rem in class AbstractIntCollection
      See Also:
      List.remove(Object)
    • addAll

      public boolean addAll​(int index, IntCollection c)
      Description copied from interface: IntList
      Inserts all of the elements in the specified type-specific collection into this type-specific list at the specified position (optional operation).
      Specified by:
      addAll in interface IntList
      See Also:
      List.addAll(int,java.util.Collection)
    • addAll

      public boolean addAll​(int index, IntList l)
      Inserts all of the elements in the specified type-specific list into this type-specific list at the specified position (optional operation).

      This implementation delegates to the type-specific version of List.addAll(int, Collection).

      Specified by:
      addAll in interface IntList
      See Also:
      List.add(int,Object)
    • addAll

      public boolean addAll​(IntCollection c)
      Adds all elements of the given type-specific collection to this collection.

      This implementation delegates to the type-specific version of List.addAll(int, Collection).

      Specified by:
      addAll in interface IntCollection
      Overrides:
      addAll in class AbstractIntCollection
      Parameters:
      c - a type-specific collection.
      Returns:
      true if this collection changed as a result of the call.
      See Also:
      Collection.addAll(Collection)
    • addAll

      public boolean addAll​(IntList l)
      Appends all of the elements in the specified type-specific list to the end of this type-specific list (optional operation).

      This implementation delegates to the type-specific list version of List.addAll(int, Collection).

      Specified by:
      addAll in interface IntList
      See Also:
      List.add(int,Object)
    • toString

      public String toString()
      Overrides:
      toString in class AbstractIntCollection