Interface DoubleCollection

All Superinterfaces:
java.util.Collection<java.lang.Double>, DoubleIterable, java.lang.Iterable<java.lang.Double>
All Known Subinterfaces:
DoubleBigList, DoubleList, DoubleSet, DoubleSortedSet
All Known Implementing Classes:
AbstractDoubleBigList, AbstractDoubleBigList.DoubleRandomAccessSubList, AbstractDoubleBigList.DoubleSubList, AbstractDoubleCollection, AbstractDoubleList, AbstractDoubleList.DoubleRandomAccessSubList, AbstractDoubleList.DoubleSubList, AbstractDoubleSet, AbstractDoubleSortedSet, DoubleArrayList, DoubleArraySet, DoubleAVLTreeSet, DoubleBigArrayBigList, DoubleBigLists.EmptyBigList, DoubleBigLists.ListBigList, DoubleBigLists.Singleton, DoubleBigLists.SynchronizedBigList, DoubleBigLists.UnmodifiableBigList, DoubleCollections.EmptyCollection, DoubleCollections.IterableCollection, DoubleImmutableList, DoubleLinkedOpenCustomHashSet, DoubleLinkedOpenHashSet, DoubleLists.EmptyList, DoubleLists.Singleton, DoubleLists.SynchronizedList, DoubleLists.SynchronizedRandomAccessList, DoubleLists.UnmodifiableList, DoubleLists.UnmodifiableRandomAccessList, DoubleOpenCustomHashSet, DoubleOpenHashBigSet, DoubleOpenHashSet, DoubleRBTreeSet, DoubleSets.EmptySet, DoubleSets.Singleton, DoubleSets.SynchronizedSet, DoubleSets.UnmodifiableSet, DoubleSortedSets.EmptySet, DoubleSortedSets.Singleton, DoubleSortedSets.SynchronizedSortedSet, DoubleSortedSets.UnmodifiableSortedSet

public interface DoubleCollection
extends java.util.Collection<java.lang.Double>, DoubleIterable
A type-specific Collection; provides some additional methods that use polymorphism to avoid (un)boxing.

Additionally, this class defines strengthens (again) iterator().

This interface specifies reference equality semantics (members will be compared equal with == instead of equals), which may result in breaks in contract if attempted to be used with non reference-equality semantics based Collections. For example, a aReferenceCollection.equals(aObjectCollection) may return different a different result then aObjectCollection.equals(aReferenceCollection), in violation of equals's contract requiring it being symmetric.

See Also:
Collection
  • Method Summary

    Modifier and Type Method Description
    boolean add​(double key)
    Ensures that this collection contains the specified element (optional operation).
    default boolean add​(java.lang.Double key)
    Deprecated.
    Please use the corresponding type-specific method instead.
    boolean addAll​(DoubleCollection c)
    Adds all elements of the given type-specific collection to this collection.
    boolean contains​(double key)
    Returns true if this collection contains the specified element.
    default boolean contains​(java.lang.Object key)
    Deprecated.
    Please use the corresponding type-specific method instead.
    boolean containsAll​(DoubleCollection c)
    Checks whether this collection contains all elements from the given type-specific collection.
    default DoubleIterator doubleIterator()
    Returns a primitive iterator on the elements of this collection.
    default java.util.stream.DoubleStream doubleParallelStream()
    Return a parallel primitive stream over the elements, performing widening casts if needed.
    default DoubleSpliterator doubleSpliterator()
    Returns a primitive spliterator on the elements of this collection.
    default java.util.stream.DoubleStream doubleStream()
    Return a primitive stream over the elements, performing widening casts if needed.
    DoubleIterator iterator()
    Returns a type-specific iterator on the elements of this collection.
    default java.util.stream.Stream<java.lang.Double> parallelStream()
    Deprecated.
    Please use the corresponding type-specific method instead.
    boolean rem​(double key)
    Removes a single instance of the specified element from this collection, if it is present (optional operation).
    default boolean remove​(java.lang.Object key)
    Deprecated.
    Please use (and implement) the rem() method instead.
    boolean removeAll​(DoubleCollection c)
    Remove from this collection all elements in the given type-specific collection.
    default boolean removeIf​(DoublePredicate filter)
    Remove from this collection all elements which satisfy the given predicate.
    default boolean removeIf​(java.util.function.DoublePredicate filter)
    Remove from this collection all elements which satisfy the given predicate.
    default boolean removeIf​(java.util.function.Predicate<? super java.lang.Double> filter)
    Deprecated.
    Please use the corresponding type-specific method instead.
    boolean retainAll​(DoubleCollection c)
    Retains in this collection only elements from the given type-specific collection.
    default DoubleSpliterator spliterator()
    Returns a type-specific spliterator on the elements of this collection.
    default java.util.stream.Stream<java.lang.Double> stream()
    Deprecated.
    Please use the corresponding type-specific method instead.
    double[] toArray​(double[] a)
    Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array.
    double[] toDoubleArray()
    Returns a primitive type array containing the items of this collection.
    default double[] toDoubleArray​(double[] a)
    Deprecated.
    Please use toArray() instead—this method is redundant and will be removed in the future.

    Methods inherited from interface java.util.Collection

    addAll, clear, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, size, toArray, toArray, toArray

    Methods inherited from interface it.unimi.dsi.fastutil.doubles.DoubleIterable

    forEach, forEach, forEach
  • Method Details

    • iterator

      DoubleIterator iterator()
      Returns a type-specific iterator on the elements of this collection.
      Specified by:
      iterator in interface java.util.Collection<java.lang.Double>
      Specified by:
      iterator in interface DoubleIterable
      Specified by:
      iterator in interface java.lang.Iterable<java.lang.Double>
      Returns:
      a type-specific iterator on the elements of this collection.
      See Also:
      Iterable.iterator()
      API Notes:
      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.
    • doubleIterator

      default DoubleIterator doubleIterator()
      Returns a primitive iterator on the elements of this collection.

      This method is identical to iterator(), as the type-specific iterator is already compatible with the JDK's primitive iterators. It only exists for compatibility with the other primitive types' Collections that have use for widened iterators.

      Specified by:
      doubleIterator in interface DoubleIterable
      Returns:
      a primitive iterator on the elements of this collection.
      Since:
      8.5.0
    • spliterator

      default DoubleSpliterator spliterator()
      Returns a type-specific spliterator on the elements of this collection.

      See Collection.spliterator() for more documentation on the requirements of the returned spliterator.

      Specified by:
      spliterator in interface java.util.Collection<java.lang.Double>
      Specified by:
      spliterator in interface DoubleIterable
      Specified by:
      spliterator in interface java.lang.Iterable<java.lang.Double>
      Returns:
      a type-specific spliterator on the elements of this collection.
      Since:
      8.5.0
      API Notes:
      This specification strengthens the one given in Collection.spliterator().

      Also, this is generally the only spliterator method subclasses should override.

      Implementation Specification:
      The default implementation returns a late-binding spliterator (see Spliterator for documentation on what binding policies mean) that wraps this instance's type specific iterator().

      Additionally, it reports Spliterator.SIZED

      Implementation Notes:
      As this default implementation wraps the iterator, and Iterator is an inherently linear API, the returned spliterator will yield limited performance gains when run in parallel contexts, as the returned spliterator's trySplit() will have linear runtime.
    • doubleSpliterator

      default DoubleSpliterator doubleSpliterator()
      Returns a primitive spliterator on the elements of this collection.

      This method is identical to spliterator(), as the type-specific spliterator is already compatible with the JDK's primitive spliterators. It only exists for compatibility with the other primitive types' Collections that have use for widened spliterators.

      Specified by:
      doubleSpliterator in interface DoubleIterable
      Returns:
      a primitive spliterator on the elements of this collection.
      Since:
      8.5.0
    • add

      boolean add​(double key)
      Ensures that this collection contains the specified element (optional operation).
      See Also:
      Collection.add(Object)
    • contains

      boolean contains​(double key)
      Returns true if this collection contains the specified element.
      See Also:
      Collection.contains(Object)
    • rem

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

      Note that this method should be called remove(), but the clash with the similarly named index-based method in the List interface forces us to use a distinguished name. For simplicity, the set interfaces reinstates remove().

      See Also:
      Collection.remove(Object)
    • add

      @Deprecated default boolean add​(java.lang.Double key)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Specified by:
      add in interface java.util.Collection<java.lang.Double>
    • contains

      @Deprecated default boolean contains​(java.lang.Object key)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Specified by:
      contains in interface java.util.Collection<java.lang.Double>
    • remove

      @Deprecated default boolean remove​(java.lang.Object key)
      Deprecated.
      Please use (and implement) the rem() method instead.
      Specified by:
      remove in interface java.util.Collection<java.lang.Double>
    • toDoubleArray

      double[] toDoubleArray()
      Returns a primitive type array containing the items of this collection.
      Returns:
      a primitive type array containing the items of this collection.
      See Also:
      Collection.toArray()
    • toDoubleArray

      @Deprecated default double[] toDoubleArray​(double[] a)
      Deprecated.
      Please use toArray() instead—this method is redundant and will be removed in the future.
      Returns a primitive type array containing the items of this collection.

      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.

      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:
      Collection.toArray(Object[])
    • toArray

      double[] toArray​(double[] a)
      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.

      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:
      Collection.toArray(Object[])
    • addAll

      boolean addAll​(DoubleCollection c)
      Adds all elements of the given type-specific collection to this collection.
      Parameters:
      c - a type-specific collection.
      Returns:
      true if this collection changed as a result of the call.
      See Also:
      Collection.addAll(Collection)
    • containsAll

      boolean containsAll​(DoubleCollection c)
      Checks whether this collection contains all elements from the given type-specific collection.
      Parameters:
      c - a type-specific collection.
      Returns:
      true if this collection contains all elements of the argument.
      See Also:
      Collection.containsAll(Collection)
    • removeAll

      boolean removeAll​(DoubleCollection c)
      Remove from this collection all elements in the given type-specific collection.
      Parameters:
      c - a type-specific collection.
      Returns:
      true if this collection changed as a result of the call.
      See Also:
      Collection.removeAll(Collection)
    • removeIf

      @Deprecated default boolean removeIf​(java.util.function.Predicate<? super java.lang.Double> filter)
      Deprecated.
      Please use the corresponding type-specific method instead.
      Specified by:
      removeIf in interface java.util.Collection<java.lang.Double>
    • removeIf

      default boolean removeIf​(java.util.function.DoublePredicate filter)
      Remove from this collection all elements which satisfy the given predicate.
      Parameters:
      filter - a predicate which returns true for elements to be removed.
      Returns:
      true if any elements were removed.
      See Also:
      Collection.removeIf(java.util.function.Predicate)
      API Notes:
      Implementing classes should generally override this method, and take the default implementation of the other overloads which will delegate to this method (after proper conversions).
    • removeIf

      default boolean removeIf​(DoublePredicate filter)
      Remove from this collection all elements which satisfy the given predicate.

      WARNING: Overriding this method is almost always a mistake, as this overload only exists to disambiguate. Instead, override the removeIf() overload that uses the JDK's primitive predicate type (e.g. IntPredicate).

      If Java supported final default methods, this would be one, but sadly it does not.

      If you checked and are overriding the version with java.util.function.XPredicate, and still see this warning, then your IDE is incorrectly conflating this method with the proper method to override, and you can safely ignore this message.

      Parameters:
      filter - a predicate which returns true for elements to be removed.
      Returns:
      true if any elements were removed.
      See Also:
      Collection.removeIf(java.util.function.Predicate)
    • retainAll

      boolean retainAll​(DoubleCollection c)
      Retains in this collection only elements from the given type-specific collection.
      Parameters:
      c - a type-specific collection.
      Returns:
      true if this collection changed as a result of the call.
      See Also:
      Collection.retainAll(Collection)
    • stream

      @Deprecated default java.util.stream.Stream<java.lang.Double> stream()
      Deprecated.
      Please use the corresponding type-specific method instead.
      Specified by:
      stream in interface java.util.Collection<java.lang.Double>
    • doubleStream

      default java.util.stream.DoubleStream doubleStream()
      Return a primitive stream over the elements, performing widening casts if needed.
      Returns:
      a primitive stream over the elements.
      See Also:
      Collection.stream(), IntStream
    • parallelStream

      @Deprecated default java.util.stream.Stream<java.lang.Double> parallelStream()
      Deprecated.
      Please use the corresponding type-specific method instead.
      Specified by:
      parallelStream in interface java.util.Collection<java.lang.Double>
    • doubleParallelStream

      default java.util.stream.DoubleStream doubleParallelStream()
      Return a parallel primitive stream over the elements, performing widening casts if needed.
      Returns:
      a parallel primitive stream over the elements.
      See Also:
      Collection.parallelStream(), IntStream