Class DoubleArraySet
- All Implemented Interfaces:
DoubleCollection,DoubleIterable,DoubleSet,Serializable,Cloneable,Iterable<Double>,Collection<Double>,Set<Double>
The main purpose of this implementation is that of wrapping cleanly the brute-force approach to the storage of a very small number of items: just put them into an array and scan linearly to find an item.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new empty array set.DoubleArraySet(double[] a) Creates a new array set using the given backing array.DoubleArraySet(double[] a, int size) Creates a new array set using the given backing array and the given number of elements of the array.DoubleArraySet(int capacity) Creates a new empty array set of given initial capacity.Creates a new array set copying the contents of a given collection.Creates a new array set copying the contents of a given collection.DoubleArraySet(Collection<? extends Double> c) Creates a new array set copying the contents of a given set.DoubleArraySet(Set<? extends Double> c) Creates a new array set copying the contents of a given set. -
Method Summary
Modifier and TypeMethodDescriptionbooleanadd(double k) Ensures that this collection contains the specified element (optional operation).voidclear()clone()Returns a deep copy of this set.booleancontains(double k) Returnstrueif this collection contains the specified element.booleanisEmpty()iterator()Returns a type-specific iterator on the elements of this collection.static DoubleArraySetof()Creates a new empty array set.static DoubleArraySetof(double e) Creates a new array set using the element given.static DoubleArraySetof(double... a) Creates a new array set using an array of elements.static DoubleArraySetCreates a new empty array set.static DoubleArraySetofUnchecked(double... a) Creates a new array set using an array of elements.booleanremove(double k) Removes an element from this set.intsize()Returns a type-specific spliterator on the elements of this collection.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[]Returns a primitive type array containing the items of this collection.Methods inherited from class it.unimi.dsi.fastutil.doubles.AbstractDoubleSet
equals, hashCode, remMethods inherited from class it.unimi.dsi.fastutil.doubles.AbstractDoubleCollection
add, addAll, addAll, contains, containsAll, containsAll, forEach, remove, removeAll, removeAll, removeIf, retainAll, retainAll, toDoubleArray, toStringMethods inherited from class java.util.AbstractCollection
toArray, toArrayMethods inherited from interface java.util.Collection
toArrayMethods inherited from interface it.unimi.dsi.fastutil.doubles.DoubleCollection
addAll, containsAll, doubleIterator, doubleParallelStream, doubleSpliterator, doubleStream, parallelStream, removeAll, removeIf, removeIf, removeIf, retainAll, stream, toDoubleArrayMethods inherited from interface it.unimi.dsi.fastutil.doubles.DoubleIterable
forEach, forEach, forEach
-
Constructor Details
-
DoubleArraySet
public DoubleArraySet(double[] a) Creates a new array set using the given backing array. The resulting set will have as many elements as the array.It is the responsibility of the caller to ensure that the elements of
aare distinct.- Parameters:
a- the backing array.
-
DoubleArraySet
public DoubleArraySet()Creates a new empty array set. -
DoubleArraySet
public DoubleArraySet(int capacity) Creates a new empty array set of given initial capacity.- Parameters:
capacity- the initial capacity.
-
DoubleArraySet
Creates a new array set copying the contents of a given collection.- Parameters:
c- a collection.
-
DoubleArraySet
Creates a new array set copying the contents of a given set.- Parameters:
c- a collection.
-
DoubleArraySet
Creates a new array set copying the contents of a given collection.- Parameters:
c- a collection.
-
DoubleArraySet
-
DoubleArraySet
public DoubleArraySet(double[] a, int size) Creates a new array set using the given backing array and the given number of elements of the array.It is the responsibility of the caller to ensure that the first
sizeelements ofaare distinct.- Parameters:
a- the backing array.size- the number of valid elements ina.
-
-
Method Details
-
of
-
of
Creates a new array set using the element given.- Parameters:
e- the element that the returned set will contain.- Returns:
- a new array set containing
e.
-
of
Creates a new array set using an array of elements.Unlike the array accepting constructors, this method will throw if duplicate elements are encountered. This adds a non-trivial validation burden. Use
ofUnchecked()if you know your input has no duplicates, which will skip this validation.- Parameters:
a- the backing array of the returned array set.- Returns:
- a new array set containing the elements in
a. - Throws:
IllegalArgumentException- if there were duplicate entries.
-
ofUnchecked
Creates a new empty array set.- Returns:
- a new empty array set.
-
ofUnchecked
Creates a new array set using an array of elements.It is the responsibility of the caller to ensure that the elements of
aare distinct.- Parameters:
a- the backing array of the returned array set.- Returns:
- a new array set containing the elements in
a.
-
iterator
Description copied from interface:DoubleCollectionReturns a type-specific iterator on the elements of this collection.- Specified by:
iteratorin interfaceCollection<Double>- Specified by:
iteratorin interfaceDoubleCollection- Specified by:
iteratorin interfaceDoubleIterable- Specified by:
iteratorin interfaceDoubleSet- Specified by:
iteratorin interfaceIterable<Double>- Specified by:
iteratorin interfaceSet<Double>- Specified by:
iteratorin classAbstractDoubleSet- Returns:
- a type-specific iterator on the elements of this collection.
- See Also:
-
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.In addition to the usual trait of
DISTINCTfor sets, the returned spliterator will also report the traitORDERED.The returned spliterator is late-binding; it will track structural changes after the current item, up until the first
trySplit(), at which point the maximum index will be fixed.
Structural changes before the current item or after the firsttrySplit()will result in unspecified behavior.- Specified by:
spliteratorin interfaceCollection<Double>- Specified by:
spliteratorin interfaceDoubleCollection- Specified by:
spliteratorin interfaceDoubleIterable- Specified by:
spliteratorin interfaceDoubleSet- Specified by:
spliteratorin interfaceIterable<Double>- Specified by:
spliteratorin interfaceSet<Double>- Returns:
- a type-specific spliterator on the elements of this collection.
-
contains
public boolean contains(double k) Description copied from class:AbstractDoubleCollectionReturnstrueif this collection contains the specified element.- Specified by:
containsin interfaceDoubleCollection- Overrides:
containsin classAbstractDoubleCollection- See Also:
-
size
public int size()- Specified by:
sizein interfaceCollection<Double>- Specified by:
sizein interfaceSet<Double>- Specified by:
sizein classAbstractCollection<Double>
-
remove
public boolean remove(double k) Description copied from class:AbstractDoubleSetRemoves an element from this set. Delegates to the type-specificrem()method implemented by type-specific abstractCollectionsuperclass.- Specified by:
removein interfaceDoubleSet- Overrides:
removein classAbstractDoubleSet- See Also:
-
add
public boolean add(double k) Description copied from class:AbstractDoubleCollectionEnsures that this collection contains the specified element (optional operation).- Specified by:
addin interfaceDoubleCollection- Overrides:
addin classAbstractDoubleCollection- See Also:
-
clear
public void clear()- Specified by:
clearin interfaceCollection<Double>- Specified by:
clearin interfaceSet<Double>- Overrides:
clearin classAbstractCollection<Double>
-
isEmpty
public boolean isEmpty()- Specified by:
isEmptyin interfaceCollection<Double>- Specified by:
isEmptyin interfaceSet<Double>- Overrides:
isEmptyin classAbstractCollection<Double>
-
toDoubleArray
public double[] toDoubleArray()Description copied from interface:DoubleCollectionReturns a primitive type array containing the items of this collection.- Specified by:
toDoubleArrayin interfaceDoubleCollection- Overrides:
toDoubleArrayin classAbstractDoubleCollection- Returns:
- a primitive type array containing the items of this collection.
- See Also:
-
toArray
public double[] toArray(double[] a) Description copied from interface:DoubleCollectionReturns 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.- Specified by:
toArrayin interfaceDoubleCollection- Overrides:
toArrayin classAbstractDoubleCollection- 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:
-
clone
Returns a deep copy of this set.This method performs a deep copy of this array set; the data stored in the set, however, is not cloned. Note that this makes a difference only for object keys.
- Returns:
- a deep copy of this set.
-