Class AbstractBooleanList

All Implemented Interfaces:
BooleanCollection, BooleanIterable, BooleanList, BooleanStack, Stack<Boolean>, Comparable<List<? extends Boolean>>, Iterable<Boolean>, Collection<Boolean>, List<Boolean>, SequencedCollection<Boolean>
Direct Known Subclasses:
AbstractBooleanList.BooleanSubList, BooleanArrayList, BooleanImmutableList, BooleanLists.Singleton

public abstract class AbstractBooleanList extends AbstractBooleanCollection implements BooleanList, BooleanStack
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.

Most of the methods in this class are optimized with the assumption that the List will have have constant-time random access. If this is not the case, you should probably at least override listIterator(int) and the xAll() methods (such as addAll(int, java.util.Collection<? extends java.lang.Boolean>)) with a more appropriate iteration scheme. Note the subList(int, int) method is cognizant of random-access or not, so that need not be reimplemented.

  • Method Details

    • add

      public void add(int index, boolean k)
      Inserts the specified element at the specified position in this list (optional operation).
      Specified by:
      add in interface BooleanList
      See Also:
      Implementation Specification:
      This implementation always throws an UnsupportedOperationException.
    • add

      public boolean add(boolean k)
      Ensures that this collection contains the specified element (optional operation).
      Specified by:
      add in interface BooleanCollection
      Specified by:
      add in interface BooleanList
      Overrides:
      add in class AbstractBooleanCollection
      See Also:
      Implementation Specification:
      This implementation delegates to the type-specific version of List.add(int, Object).
    • removeBoolean

      public boolean removeBoolean(int i)
      Removes the element at the specified position in this list (optional operation).
      Specified by:
      removeBoolean in interface BooleanList
      See Also:
      Implementation Specification:
      This implementation always throws an UnsupportedOperationException.
    • set

      public boolean set(int index, boolean k)
      Replaces the element at the specified position in this list with the specified element (optional operation).
      Specified by:
      set in interface BooleanList
      See Also:
      Implementation Specification:
      This implementation always throws an UnsupportedOperationException.
    • addAll

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

      public boolean addAll(Collection<? extends Boolean> c)
      Specified by:
      addAll in interface Collection<Boolean>
      Specified by:
      addAll in interface List<Boolean>
      Overrides:
      addAll in class AbstractBooleanCollection
      Implementation Specification:
      This implementation delegates to the type-specific version of List.addAll(int, Collection).
    • iterator

      public BooleanListIterator iterator()
      Returns a type-specific iterator on the elements of this collection.
      Specified by:
      iterator in interface BooleanCollection
      Specified by:
      iterator in interface BooleanIterable
      Specified by:
      iterator in interface BooleanList
      Specified by:
      iterator in interface Collection<Boolean>
      Specified by:
      iterator in interface Iterable<Boolean>
      Specified by:
      iterator in interface List<Boolean>
      Specified by:
      iterator in class AbstractBooleanCollection
      Returns:
      a type-specific iterator on the elements of this collection.
      See Also:
      Implementation Specification:
      This implementation delegates to listIterator().
    • listIterator

      public BooleanListIterator listIterator()
      Returns a type-specific list iterator on the list.
      Specified by:
      listIterator in interface BooleanList
      Specified by:
      listIterator in interface List<Boolean>
      See Also:
      Implementation Specification:
      This implementation delegates to listIterator(0).
    • listIterator

      public BooleanListIterator listIterator(int index)
      Returns a type-specific list iterator on the list starting at a given index.
      Specified by:
      listIterator in interface BooleanList
      Specified by:
      listIterator in interface List<Boolean>
      See Also:
      Implementation Specification:
      This implementation is based on the random-access methods.
    • contains

      public boolean contains(boolean k)
      Returns true if this list contains the specified element.
      Specified by:
      contains in interface BooleanCollection
      Overrides:
      contains in class AbstractBooleanCollection
      See Also:
      Implementation Specification:
      This implementation delegates to indexOf().
    • indexOf

      public int indexOf(boolean k)
      Description copied from interface: BooleanList
      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 BooleanList
      See Also:
    • lastIndexOf

      public int lastIndexOf(boolean k)
      Description copied from interface: BooleanList
      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 BooleanList
      See Also:
    • size

      public void size(int size)
      Description copied from interface: BooleanList
      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 BooleanList
      Parameters:
      size - the new size.
    • subList

      public BooleanList subList(int from, int to)
      Description copied from interface: BooleanList
      Returns a type-specific view of the portion of this list from the index from, inclusive, to the index to, exclusive.
      Specified by:
      subList in interface BooleanList
      Specified by:
      subList in interface List<Boolean>
      See Also:
    • forEach

      public void forEach(BooleanConsumer action)
      Performs the given action for each element of this type-specific Iterable until all elements have been processed or the action throws an exception.
      Specified by:
      forEach in interface BooleanIterable
      Parameters:
      action - the action to be performed for each element.
      See Also:
      Implementation Specification:
      If this list is RandomAccess, will iterate using a for loop and the type-specific List.get(int) method. Otherwise it will fallback to using the iterator based loop implementation from the superinterface.
    • removeElements

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

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

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

      public void addElements(int index, boolean[] 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 BooleanList
      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, boolean[] a)
      Add (hopefully quickly) elements to this type-specific list.
      Specified by:
      addElements in interface BooleanList
      Parameters:
      index - the index at which to add elements.
      a - the array containing the elements.
      Implementation Specification:
      This implementation delegates to the analogous method for array fragments.
    • getElements

      public void getElements(int from, boolean[] 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 BooleanList
      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.
    • setElements

      public void setElements(int index, boolean[] a, int offset, int length)
      Description copied from interface: BooleanList
      Set (hopefully quickly) elements to match the array given. Sets each in this list to the corresponding elements in the array, as if by
       ListIterator iter = listIterator(index);
       int i = 0;
       while (i < length) {
              iter.next();
              iter.set(a[offset + i++]);
       }
       
      However, the exact implementation may be more efficient, taking into account whether random access is faster or not, or at the discretion of subclasses, abuse internals.
      Specified by:
      setElements in interface BooleanList
      Parameters:
      index - the index at which to start setting elements.
      a - the array containing the elements
      offset - the offset of the first element to add.
      length - the number of elements to add.
    • clear

      public void clear()
      Specified by:
      clear in interface Collection<Boolean>
      Specified by:
      clear in interface List<Boolean>
      Overrides:
      clear in class AbstractCollection<Boolean>
      Implementation Specification:
      This implementation delegates to removeElements(int, int).
    • hashCode

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

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

      public int compareTo(List<? extends Boolean> 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 Boolean>>
      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(boolean o)
      Description copied from interface: BooleanStack
      Pushes the given object on the stack.
      Specified by:
      push in interface BooleanStack
      Parameters:
      o - the object to push on the stack.
      See Also:
    • popBoolean

      public boolean popBoolean()
      Description copied from interface: BooleanStack
      Pops the top off the stack.
      Specified by:
      popBoolean in interface BooleanStack
      Returns:
      the top of the stack.
      See Also:
    • topBoolean

      public boolean topBoolean()
      Description copied from interface: BooleanStack
      Peeks at the top of the stack (optional operation).
      Specified by:
      topBoolean in interface BooleanStack
      Returns:
      the top of the stack.
      See Also:
    • peekBoolean

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

      public boolean rem(boolean k)
      Removes a single instance of the specified element from this collection, if it is present (optional operation).
      Specified by:
      rem in interface BooleanCollection
      Overrides:
      rem in class AbstractBooleanCollection
      See Also:
      Implementation Specification:
      This implementation delegates to indexOf().
    • toBooleanArray

      public boolean[] toBooleanArray()
      Description copied from interface: BooleanCollection
      Returns a primitive type array containing the items of this collection.
      Specified by:
      toBooleanArray in interface BooleanCollection
      Overrides:
      toBooleanArray in class AbstractBooleanCollection
      Returns:
      a primitive type array containing the items of this collection.
      See Also:
    • toArray

      public boolean[] toArray(boolean[] a)
      Description copied from interface: BooleanCollection
      Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array.

      Note that, contrarily to Collection.toArray(Object[]), this methods just writes all elements of this collection: no special value will be added after the last one.

      Specified by:
      toArray in interface BooleanCollection
      Overrides:
      toArray in class AbstractBooleanCollection
      Parameters:
      a - if this array is big enough, it will be used to store this collection.
      Returns:
      a primitive type array containing the items of this collection.
      See Also:
    • addAll

      public boolean addAll(int index, BooleanCollection c)
      Description copied from interface: BooleanList
      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 BooleanList
      See Also:
    • addAll

      public boolean addAll(BooleanCollection c)
      Adds all elements of the given type-specific collection to this collection.
      Specified by:
      addAll in interface BooleanCollection
      Overrides:
      addAll in class AbstractBooleanCollection
      Parameters:
      c - a type-specific collection.
      Returns:
      true if this collection changed as a result of the call.
      See Also:
      Implementation Specification:
      This implementation delegates to the type-specific version of List.addAll(int, Collection).
    • toString

      public String toString()
      Overrides:
      toString in class AbstractBooleanCollection