Interface ReferenceList<K>

    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      void addElements​(int index, K[] a)
      Add (hopefully quickly) elements to this type-specific list.
      void addElements​(int index, K[] a, int offset, int length)
      Add (hopefully quickly) elements to this type-specific list.
      void getElements​(int from, java.lang.Object[] a, int offset, int length)
      Copies (hopefully quickly) elements of this type-specific list into the given array.
      ObjectListIterator<K> iterator()
      Returns a type-specific iterator on the elements of this list.
      ObjectListIterator<K> listIterator()
      Returns a type-specific list iterator on the list.
      ObjectListIterator<K> listIterator​(int index)
      Returns a type-specific list iterator on the list starting at a given index.
      static <K> ReferenceList<K> of​(K... init)
      Creates an array list using a list of elements.
      void removeElements​(int from, int to)
      Removes (hopefully quickly) elements of this type-specific list.
      default void setElements​(int index, K[] a)
      Set (hopefully quickly) elements to match the array given.
      default void setElements​(int index, K[] a, int offset, int length)
      Set (hopefully quickly) elements to match the array given.
      default void setElements​(K[] a)
      Set (hopefully quickly) elements to match the array given.
      void size​(int size)
      Sets the size of this list.
      ReferenceList<K> subList​(int from, int to)
      Returns a type-specific view of the portion of this list from the index from, inclusive, to the index to, exclusive.
      default void unstableSort​(java.util.Comparator<? super K> comparator)
      Sorts this list using a sort not assured to be stable.
      • Methods inherited from interface java.util.Collection

        parallelStream, removeIf, stream, toArray
      • Methods inherited from interface java.lang.Iterable

        forEach
      • Methods inherited from interface java.util.List

        add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, lastIndexOf, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, toArray, toArray
    • Method Detail

      • iterator

        ObjectListIterator<K> iterator()
        Returns a type-specific iterator on the elements of this list.

        Note that this specification strengthens the one given in List.iterator(). It would not be normally necessary, but Iterable.iterator() is bizarrily re-specified in List.

        Specified by:
        iterator in interface java.util.Collection<K>
        Specified by:
        iterator in interface java.lang.Iterable<K>
        Specified by:
        iterator in interface java.util.List<K>
        Specified by:
        iterator in interface ObjectIterable<K>
        Specified by:
        iterator in interface ReferenceCollection<K>
        Returns:
        an iterator on the elements of this list.
        See Also:
        Iterable.iterator()
      • listIterator

        ObjectListIterator<K> listIterator()
        Returns a type-specific list iterator on the list.
        Specified by:
        listIterator in interface java.util.List<K>
        See Also:
        List.listIterator()
      • listIterator

        ObjectListIterator<K> listIterator​(int index)
        Returns a type-specific list iterator on the list starting at a given index.
        Specified by:
        listIterator in interface java.util.List<K>
        See Also:
        List.listIterator(int)
      • subList

        ReferenceList<K> subList​(int from,
                                 int to)
        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 java.util.List<K>
        See Also:
        List.subList(int,int)
      • size

        void size​(int size)
        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.

        Parameters:
        size - the new size.
      • getElements

        void getElements​(int from,
                         java.lang.Object[] a,
                         int offset,
                         int length)
        Copies (hopefully quickly) elements of this type-specific list into the given array.
        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.
      • removeElements

        void removeElements​(int from,
                            int to)
        Removes (hopefully quickly) elements of this type-specific list.
        Parameters:
        from - the start index (inclusive).
        to - the end index (exclusive).
      • addElements

        void addElements​(int index,
                         K[] a)
        Add (hopefully quickly) elements to this type-specific list.
        Parameters:
        index - the index at which to add elements.
        a - the array containing the elements.
      • addElements

        void addElements​(int index,
                         K[] a,
                         int offset,
                         int length)
        Add (hopefully quickly) elements to this type-specific list.
        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.
      • setElements

        default void setElements​(K[] a)
        Set (hopefully quickly) elements to match the array given.
        Parameters:
        a - the array containing the elements.
        Since:
        8.3.0
      • setElements

        default void setElements​(int index,
                                 K[] a)
        Set (hopefully quickly) elements to match the array given.
        Parameters:
        index - the index at which to start setting elements.
        a - the array containing the elements.
        Since:
        8.3.0
      • setElements

        default void setElements​(int index,
                                 K[] a,
                                 int offset,
                                 int length)
        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.
        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.
        Since:
        8.3.0
      • of

        @SafeVarargs
        static <K> ReferenceList<K> of​(K... init)
        Creates an array list using a list of elements.
        Parameters:
        init - a list of elements that will be used to initialize the list.
        Returns:
        a new array list containing the given elements.
      • unstableSort

        default void unstableSort​(java.util.Comparator<? super K> comparator)
        Sorts this list using a sort not assured to be stable. This differs from List.sort(java.util.Comparator) in that the results are not assured to be stable, but may be a bit faster.

        Unless a subclass specifies otherwise, the results of the method if the list is concurrently modified during the sort are unspecified.

        Since:
        8.3.0
        Implementation Notes:
        The default implementation dumps the elements into an array using List.toArray(), sorts the array, then replaces all elements using the setElements(K[]) function.