public interface DoubleCollection extends java.util.Collection<java.lang.Double>, DoubleIterable
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 Collection
s. 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.
Collection
Modifier and Type | Method and 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(java.util.function.DoublePredicate filter)
Remove from this collection all elements which satisfy the given predicate.
|
default boolean |
removeIf(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. |
addAll, clear, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, size, toArray, toArray
forEach, forEach, forEach
DoubleIterator iterator()
iterator
in interface java.util.Collection<java.lang.Double>
iterator
in interface DoubleIterable
iterator
in interface java.lang.Iterable<java.lang.Double>
Iterable.iterator()
Iterable.iterator()
, which was already
strengthened in the corresponding type-specific class,
but was weakened by the fact that this interface extends Collection
.default DoubleIterator doubleIterator()
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' Collection
s
that have use for widened iterators.
doubleIterator
in interface DoubleIterable
default DoubleSpliterator spliterator()
See Collection.spliterator()
for more documentation on the requirements
of the returned spliterator.
spliterator
in interface java.util.Collection<java.lang.Double>
spliterator
in interface DoubleIterable
spliterator
in interface java.lang.Iterable<java.lang.Double>
Collection.spliterator()
.
Also, this is generally the only spliterator
method subclasses should override.
Spliterator
for documentation on what binding policies mean)
that wraps this instance's type specific iterator()
.
Additionally, it reports Spliterator.SIZED
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.default DoubleSpliterator doubleSpliterator()
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' Collection
s
that have use for widened spliterators.
doubleSpliterator
in interface DoubleIterable
boolean add(double key)
Collection.add(Object)
boolean contains(double key)
true
if this collection contains the specified element.Collection.contains(Object)
boolean rem(double key)
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()
.
Collection.remove(Object)
@Deprecated default boolean add(java.lang.Double key)
add
in interface java.util.Collection<java.lang.Double>
@Deprecated default boolean contains(java.lang.Object key)
contains
in interface java.util.Collection<java.lang.Double>
@Deprecated default boolean remove(java.lang.Object key)
rem()
method instead.remove
in interface java.util.Collection<java.lang.Double>
double[] toDoubleArray()
Collection.toArray()
@Deprecated default double[] toDoubleArray(double[] a)
toArray()
instead—this method is redundant and will be removed in the future.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.
a
- if this array is big enough, it will be used to store this collection.Collection.toArray(Object[])
double[] toArray(double[] a)
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.
a
- if this array is big enough, it will be used to store this collection.Collection.toArray(Object[])
boolean addAll(DoubleCollection c)
c
- a type-specific collection.true
if this collection changed as a result of the call.Collection.addAll(Collection)
boolean containsAll(DoubleCollection c)
c
- a type-specific collection.true
if this collection contains all elements of the argument.Collection.containsAll(Collection)
boolean removeAll(DoubleCollection c)
c
- a type-specific collection.true
if this collection changed as a result of the call.Collection.removeAll(Collection)
@Deprecated default boolean removeIf(java.util.function.Predicate<? super java.lang.Double> filter)
removeIf
in interface java.util.Collection<java.lang.Double>
default boolean removeIf(java.util.function.DoublePredicate filter)
filter
- a predicate which returns true
for elements to be
removed.true
if any elements were removed.Collection.removeIf(java.util.function.Predicate)
default boolean removeIf(DoublePredicate filter)
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.
filter
- a predicate which returns true
for elements to be
removed.true
if any elements were removed.Collection.removeIf(java.util.function.Predicate)
boolean retainAll(DoubleCollection c)
c
- a type-specific collection.true
if this collection changed as a result of the call.Collection.retainAll(Collection)
@Deprecated default java.util.stream.Stream<java.lang.Double> stream()
stream
in interface java.util.Collection<java.lang.Double>
default java.util.stream.DoubleStream doubleStream()
Collection.stream()
,
IntStream
@Deprecated default java.util.stream.Stream<java.lang.Double> parallelStream()
parallelStream
in interface java.util.Collection<java.lang.Double>
default java.util.stream.DoubleStream doubleParallelStream()
Collection.parallelStream()
,
IntStream