Class AbstractLongBigList

All Implemented Interfaces:
BigList<Long>, LongBigList, LongCollection, LongIterable, LongStack, Size64, Stack<Long>, Comparable<BigList<? extends Long>>, Iterable<Long>, Collection<Long>
Direct Known Subclasses:
AbstractLongBigList.LongSubList, LongBigArrayBigList, LongBigLists.ListBigList, LongBigLists.Singleton, LongMappedBigList

public abstract class AbstractLongBigList extends AbstractLongCollection implements LongBigList, LongStack
An abstract class providing basic methods for big lists implementing a type-specific big list interface.

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(long) and the xAll() methods (such as addAll(long, java.util.Collection<? extends java.lang.Long>)) with a more appropriate iteration scheme. Note the subList(long, long) method is cognizant of random-access or not, so that need not be reimplemented.

  • Method Details

    • add

      public void add(long index, long k)
      Inserts the specified element at the specified position in this type-specific big list (optional operation).
      Specified by:
      add in interface LongBigList
      See Also:
      Implementation Specification:
      This implementation always throws an UnsupportedOperationException.
    • add

      public boolean add(long k)
      Ensures that this collection contains the specified element (optional operation).
      Specified by:
      add in interface LongCollection
      Overrides:
      add in class AbstractLongCollection
      See Also:
      Implementation Specification:
      This implementation delegates to the type-specific version of BigList.add(long, Object).
    • removeLong

      public long removeLong(long i)
      Removes the element at the specified position.
      Specified by:
      removeLong in interface LongBigList
      See Also:
      Implementation Specification:
      This implementation always throws an UnsupportedOperationException.
    • set

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

      public boolean addAll(long index, Collection<? extends Long> c)
      Adds all of the elements in the specified collection to this list (optional operation).
      Specified by:
      addAll in interface BigList<Long>
      Parameters:
      index - index at which to insert the first element from the specified collection.
      c - collection containing elements to be added to this big list.
      Returns:
      true if this big list changed as a result of the call
      See Also:
    • addAll

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

      public LongBigListIterator iterator()
      Returns a type-specific iterator on the elements of this collection.
      Specified by:
      iterator in interface Collection<Long>
      Specified by:
      iterator in interface Iterable<Long>
      Specified by:
      iterator in interface LongBigList
      Specified by:
      iterator in interface LongCollection
      Specified by:
      iterator in interface LongIterable
      Specified by:
      iterator in class AbstractLongCollection
      Returns:
      a type-specific iterator on the elements of this collection.
      See Also:
      Implementation Specification:
      This implementation delegates to listIterator().
    • listIterator

      public LongBigListIterator listIterator()
      Returns a type-specific big-list iterator on this type-specific big list.
      Specified by:
      listIterator in interface BigList<Long>
      Specified by:
      listIterator in interface LongBigList
      Returns:
      a big-list iterator over the elements in this big list.
      See Also:
      Implementation Specification:
      This implementation delegates to listIterator(0).
    • listIterator

      public LongBigListIterator listIterator(long index)
      Returns a type-specific list iterator on this type-specific big list starting at a given index.
      Specified by:
      listIterator in interface BigList<Long>
      Specified by:
      listIterator in interface LongBigList
      Parameters:
      index - index of first element to be returned from the big-list iterator.
      Returns:
      a big-list iterator of the elements in this big list, starting at the specified position in this big list.
      See Also:
      Implementation Specification:
      This implementation is based on the random-access methods.
    • contains

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

      public long indexOf(long k)
      Description copied from interface: LongBigList
      Returns the index of the first occurrence of the specified element in this type-specific big list, or -1 if this big list does not contain the element.
      Specified by:
      indexOf in interface LongBigList
      See Also:
    • lastIndexOf

      public long lastIndexOf(long k)
      Description copied from interface: LongBigList
      Returns the index of the last occurrence of the specified element in this type-specific big list, or -1 if this big list does not contain the element.
      Specified by:
      lastIndexOf in interface LongBigList
      See Also:
    • size

      public void size(long size)
      Description copied from interface: BigList
      Sets the size of this big 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 BigList<Long>
      Parameters:
      size - the new size.
    • subList

      public LongBigList subList(long from, long to)
      Description copied from interface: LongBigList
      Returns a type-specific view of the portion of this type-specific big list from the index from, inclusive, to the index to, exclusive.
      Specified by:
      subList in interface BigList<Long>
      Specified by:
      subList in interface LongBigList
      Parameters:
      from - the starting element (inclusive).
      to - the ending element (exclusive).
      Returns:
      a big sublist view of this big list.
      See Also:
    • forEach

      public void forEach(LongConsumer 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 LongIterable
      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(long from, long to)
      Removes (hopefully quickly) elements of this type-specific big 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 LongBigList
      Parameters:
      from - the start index (inclusive).
      to - the end index (exclusive).
    • addElements

      public void addElements(long index, long[][] a, long offset, long length)
      Add (hopefully quickly) elements to this type-specific big 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 LongBigList
      Parameters:
      index - the index at which to add elements.
      a - the big array containing the elements.
      offset - the offset of the first element to add.
      length - the number of elements to add.
    • addElements

      public void addElements(long index, long[][] a)
      Add (hopefully quickly) elements to this type-specific big list.
      Specified by:
      addElements in interface LongBigList
      Parameters:
      index - the index at which to add elements.
      a - the big array containing the elements.
      Implementation Specification:
      This implementation delegates to the analogous method for big-array fragments.
    • getElements

      public void getElements(long from, long[][] a, long offset, long length)
      Copies (hopefully quickly) elements of this type-specific big list into the given big 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 LongBigList
      Parameters:
      from - the start index (inclusive).
      a - the destination big array.
      offset - the offset into the destination big array where to store the first element copied.
      length - the number of elements to be copied.
    • setElements

      public void setElements(long index, long[][] a, long offset, long length)
      Description copied from interface: LongBigList
      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);
       long i = 0;
       while (i < length) {
         iter.next();
         iter.set(BigArrays.get(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 LongBigList
      Parameters:
      index - the index at which to start setting elements.
      a - the big 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<Long>
      Overrides:
      clear in class AbstractCollection<Long>
      Implementation Specification:
      This implementation delegates to removeElements(long, long).
    • size

      @Deprecated public int size()
      Deprecated.
      Please use Size64.size64() instead.
      Returns the size of this data structure, minimized with Integer.MAX_VALUE.

      This default implementation follows the definition above, which is compatible with Collection.size().

      Specified by:
      size in interface BigList<Long>
      Specified by:
      size in interface Collection<Long>
      Specified by:
      size in interface Size64
      Specified by:
      size in class AbstractCollection<Long>
      Returns:
      the size of this data structure, minimized with Integer.MAX_VALUE.
      See Also:
      Implementation Specification:
      This implementation delegates to Size64.size64().
    • hashCode

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

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

      public int compareTo(BigList<? extends Long> l)
      Compares this big list to another object. If the argument is a BigList, this method performs a lexicographical comparison; otherwise, it throws a ClassCastException.
      Specified by:
      compareTo in interface Comparable<BigList<? extends Long>>
      Parameters:
      l - a big list.
      Returns:
      if the argument is a BigList, 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 big list.
    • push

      public void push(long o)
      Description copied from interface: LongStack
      Pushes the given object on the stack.
      Specified by:
      push in interface LongStack
      Parameters:
      o - the object to push on the stack.
      See Also:
    • popLong

      public long popLong()
      Description copied from interface: LongStack
      Pops the top off the stack.
      Specified by:
      popLong in interface LongStack
      Returns:
      the top of the stack.
      See Also:
    • topLong

      public long topLong()
      Description copied from interface: LongStack
      Peeks at the top of the stack (optional operation).
      Specified by:
      topLong in interface LongStack
      Returns:
      the top of the stack.
      See Also:
    • peekLong

      public long peekLong(int i)
      Description copied from interface: LongStack
      Peeks at an element on the stack (optional operation).
      Specified by:
      peekLong in interface LongStack
      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(long k)
      Removes a single instance of the specified element from this collection, if it is present (optional operation).
      Specified by:
      rem in interface LongCollection
      Overrides:
      rem in class AbstractLongCollection
      See Also:
      Implementation Specification:
      This implementation delegates to indexOf().
    • addAll

      public boolean addAll(long index, LongCollection c)
      Inserts all of the elements in the specified type-specific collection into this type-specific big list at the specified position (optional operation).
      Specified by:
      addAll in interface LongBigList
      See Also:
      Implementation Specification:
      This implementation delegates to the type-specific version of addAll(long, Collection).
    • addAll

      public boolean addAll(LongCollection c)
      Adds all elements of the given type-specific collection to this collection.
      Specified by:
      addAll in interface LongCollection
      Overrides:
      addAll in class AbstractLongCollection
      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 addAll(long, Collection).
    • add

      @Deprecated public void add(long index, Long ok)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Inserts the specified element at the specified position in this big list (optional operation).
      Specified by:
      add in interface BigList<Long>
      Specified by:
      add in interface LongBigList
      Parameters:
      index - a position in the big list.
      ok - an element to be inserted.
      See Also:
      Implementation Specification:
      This implementation delegates to the corresponding type-specific method.
    • set

      @Deprecated public Long set(long index, Long ok)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Replaces the element at the specified position in this big list with the specified element (optional operation).
      Specified by:
      set in interface BigList<Long>
      Specified by:
      set in interface LongBigList
      Parameters:
      index - a position in the big list.
      ok - the element to be stored at the specified position.
      Returns:
      the element previously at the specified positions.
      See Also:
      Implementation Specification:
      This implementation delegates to the corresponding type-specific method.
    • get

      @Deprecated public Long get(long index)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Returns the element at the specified position.
      Specified by:
      get in interface BigList<Long>
      Specified by:
      get in interface LongBigList
      Parameters:
      index - a position in the big list.
      Returns:
      the element at the specified position.
      See Also:
      Implementation Specification:
      This implementation delegates to the corresponding type-specific method.
    • indexOf

      @Deprecated public long indexOf(Object ok)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Returns the index of the first occurrence of the specified element in this big list, or -1 if this big list does not contain the element.
      Specified by:
      indexOf in interface BigList<Long>
      Specified by:
      indexOf in interface LongBigList
      Parameters:
      ok - the object to search for.
      Returns:
      the index of the first occurrence of the specified element in this big list, or -1 if this big list does not contain the element.
      See Also:
      Implementation Specification:
      This implementation delegates to the corresponding type-specific method.
    • lastIndexOf

      @Deprecated public long lastIndexOf(Object ok)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Returns the index of the last occurrence of the specified element in this big list, or -1 if this big list does not contain the element.
      Specified by:
      lastIndexOf in interface BigList<Long>
      Specified by:
      lastIndexOf in interface LongBigList
      Parameters:
      ok - the object to search for.
      Returns:
      the index of the last occurrence of the specified element in this big list, or -1 if this big list does not contain the element.
      See Also:
      Implementation Specification:
      This implementation delegates to the corresponding type-specific method.
    • remove

      @Deprecated public Long remove(long index)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Removes the element at the specified position.
      Specified by:
      remove in interface BigList<Long>
      Specified by:
      remove in interface LongBigList
      Parameters:
      index - a position in the big list.
      Returns:
      the element previously at the specified position.
      See Also:
      Implementation Specification:
      This implementation delegates to the corresponding type-specific method.
    • push

      @Deprecated public void push(Long o)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Pushes the given object on the stack.

      This default implementation delegates to the corresponding type-specific method.

      Specified by:
      push in interface LongStack
      Specified by:
      push in interface Stack<Long>
      Parameters:
      o - the object that will become the new top of the stack.
      Implementation Specification:
      This implementation delegates to the corresponding type-specific method.
    • pop

      @Deprecated public Long pop()
      Deprecated.
      Please use the corresponding type-specific method instead.
      Pops the top off the stack.

      This default implementation delegates to the corresponding type-specific method.

      Specified by:
      pop in interface LongStack
      Specified by:
      pop in interface Stack<Long>
      Returns:
      the top of the stack.
      Implementation Specification:
      This implementation delegates to the corresponding type-specific method.
    • top

      @Deprecated public Long top()
      Deprecated.
      Please use the corresponding type-specific method instead.
      Peeks at the top of the stack (optional operation).

      This default implementation returns peek(0).

      This default implementation delegates to the corresponding type-specific method.

      Specified by:
      top in interface LongStack
      Specified by:
      top in interface Stack<Long>
      Returns:
      the top of the stack.
      Implementation Specification:
      This implementation delegates to the corresponding type-specific method.
    • peek

      @Deprecated public Long peek(int i)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Peeks at an element on the stack (optional operation).

      This default implementation just throws an UnsupportedOperationException.

      This default implementation delegates to the corresponding type-specific method.

      Specified by:
      peek in interface LongStack
      Specified by:
      peek in interface Stack<Long>
      Parameters:
      i - an index from the stop of the stack (0 represents the top).
      Returns:
      the i-th element on the stack.
      Implementation Specification:
      This implementation delegates to the corresponding type-specific method.
    • toString

      public String toString()
      Overrides:
      toString in class AbstractLongCollection