Interface ReferenceSet<K>
- All Superinterfaces:
Collection<K>
,Iterable<K>
,ObjectIterable<K>
,ReferenceCollection<K>
,Set<K>
- All Known Subinterfaces:
ReferenceSortedSet<K>
- All Known Implementing Classes:
AbstractReferenceSet
,AbstractReferenceSortedSet
,ReferenceArraySet
,ReferenceLinkedOpenHashSet
,ReferenceOpenHashBigSet
,ReferenceOpenHashSet
,ReferenceSets.EmptySet
,ReferenceSets.Singleton
,ReferenceSets.SynchronizedSet
,ReferenceSets.UnmodifiableSet
,ReferenceSortedSets.EmptySet
,ReferenceSortedSets.Singleton
,ReferenceSortedSets.SynchronizedSortedSet
,ReferenceSortedSets.UnmodifiableSortedSet
Set
; provides some additional methods that use polymorphism to avoid
(un)boxing.
Additionally, this interface 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 Set
s. For
example, a aReferenceSet.equals(aObjectSet)
may return different a different result then
aObjectSet.equals(aReferenceSet)
, in violation of equals
's contract
requiring it being symmetric.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptioniterator()
Returns a type-specific iterator on the elements of this set.static <K> ReferenceSet
<K> of()
Returns an immutable empty set.static <K> ReferenceSet
<K> of
(K e) Returns an immutable set with the element given.static <K> ReferenceSet
<K> of
(K... a) Returns an immutable list with the elements given.static <K> ReferenceSet
<K> of
(K e0, K e1) Returns an immutable set with the elements given.static <K> ReferenceSet
<K> of
(K e0, K e1, K e2) Returns an immutable set with the elements given.default ObjectSpliterator
<K> Returns a type-specific spliterator on the elements of this set.Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Method Details
-
iterator
ObjectIterator<K> iterator()Returns a type-specific iterator on the elements of this set.- Specified by:
iterator
in interfaceCollection<K>
- Specified by:
iterator
in interfaceIterable<K>
- Specified by:
iterator
in interfaceObjectIterable<K>
- Specified by:
iterator
in interfaceReferenceCollection<K>
- Specified by:
iterator
in interfaceSet<K>
- Returns:
- a type-specific iterator on the elements of this set.
- See Also:
- 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 extendsSet
.Also, this is generally the only
iterator
method subclasses should override.
-
spliterator
Returns a type-specific spliterator on the elements of this set.Set spliterators must report at least
Spliterator.DISTINCT
.See
Set.spliterator()
for more documentation on the requirements of the returned spliterator.- Specified by:
spliterator
in interfaceCollection<K>
- Specified by:
spliterator
in interfaceIterable<K>
- Specified by:
spliterator
in interfaceObjectIterable<K>
- Specified by:
spliterator
in interfaceReferenceCollection<K>
- Specified by:
spliterator
in interfaceSet<K>
- 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()
, which was already strengthened in the corresponding type-specific class, but was weakened by the fact that this interface extendsSet
.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 specificiterator()
.Additionally, it reports
Spliterator.SIZED
andSpliterator.DISTINCT
. - 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'strySplit()
will have linear runtime.
-
of
Returns an immutable empty set.- Returns:
- an immutable empty set.
-
of
Returns an immutable set with the element given.- Parameters:
e
- an element.- Returns:
- an immutable set containing
e
.
-
of
Returns an immutable set with the elements given.- Parameters:
e0
- the first element.e1
- the second element.- Returns:
- an immutable set containing
e0
ande1
. - Throws:
IllegalArgumentException
- if there were duplicate entries.
-
of
Returns an immutable set with the elements given.- Parameters:
e0
- the first element.e1
- the second element.e2
- the third element.- Returns:
- an immutable set containing
e0
,e1
, ande2
. - Throws:
IllegalArgumentException
- if there were duplicate entries.
-
of
Returns an immutable list with the elements given.- Parameters:
a
- the list of elements that will be in the final set.- Returns:
- an immutable set containing the elements in
a
. - Throws:
IllegalArgumentException
- if there are any duplicate entries.
-