Class BooleanArraySet
- java.lang.Object
-
- java.util.AbstractCollection<java.lang.Boolean>
-
- it.unimi.dsi.fastutil.booleans.AbstractBooleanCollection
-
- it.unimi.dsi.fastutil.booleans.AbstractBooleanSet
-
- it.unimi.dsi.fastutil.booleans.BooleanArraySet
-
- All Implemented Interfaces:
BooleanCollection
,BooleanIterable
,BooleanSet
,java.io.Serializable
,java.lang.Cloneable
,java.lang.Iterable<java.lang.Boolean>
,java.util.Collection<java.lang.Boolean>
,java.util.Set<java.lang.Boolean>
public class BooleanArraySet extends AbstractBooleanSet implements java.io.Serializable, java.lang.Cloneable
A simple, brute-force implementation of a set based on a backing array.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:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description BooleanArraySet()
Creates a new empty array set.BooleanArraySet(boolean[] a)
Creates a new array set using the given backing array.BooleanArraySet(boolean[] a, int size)
Creates a new array set using the given backing array and the given number of elements of the array.BooleanArraySet(int capacity)
Creates a new empty array set of given initial capacity.BooleanArraySet(BooleanCollection c)
Creates a new array set copying the contents of a given collection.BooleanArraySet(BooleanSet c)
Creates a new array set copying the contents of a given collection.BooleanArraySet(java.util.Collection<? extends java.lang.Boolean> c)
Creates a new array set copying the contents of a given set.BooleanArraySet(java.util.Set<? extends java.lang.Boolean> c)
Creates a new array set copying the contents of a given set.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(boolean k)
Ensures that this collection contains the specified element (optional operation).void
clear()
BooleanArraySet
clone()
Returns a deep copy of this set.boolean
contains(boolean k)
Returnstrue
if this collection contains the specified element.boolean
isEmpty()
BooleanIterator
iterator()
Returns a type-specific iterator on the elements of this collection.static BooleanArraySet
of()
Creates a new empty array set.static BooleanArraySet
of(boolean e)
Creates a new array set using the element given.static BooleanArraySet
of(boolean... a)
Creates a new array set using an array of elements.static BooleanArraySet
ofUnchecked()
Creates a new empty array set.static BooleanArraySet
ofUnchecked(boolean... a)
Creates a new array set using an array of elements.boolean
remove(boolean k)
Removes an element from this set.int
size()
BooleanSpliterator
spliterator()
Returns a type-specific spliterator on the elements of this set.boolean[]
toArray(boolean[] 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.boolean[]
toBooleanArray()
Returns a primitive type array containing the items of this collection.-
Methods inherited from class it.unimi.dsi.fastutil.booleans.AbstractBooleanSet
equals, hashCode, rem
-
Methods inherited from class it.unimi.dsi.fastutil.booleans.AbstractBooleanCollection
add, addAll, addAll, contains, containsAll, containsAll, remove, removeAll, removeAll, retainAll, retainAll, toBooleanArray, toString
-
Methods inherited from interface it.unimi.dsi.fastutil.booleans.BooleanCollection
addAll, containsAll, removeAll, removeIf, removeIf, retainAll, toBooleanArray
-
Methods inherited from interface it.unimi.dsi.fastutil.booleans.BooleanIterable
forEach, forEach
-
Methods inherited from interface it.unimi.dsi.fastutil.booleans.BooleanSet
add, contains, remove
-
-
-
-
Constructor Detail
-
BooleanArraySet
public BooleanArraySet(boolean[] 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
a
are distinct.- Parameters:
a
- the backing array.
-
BooleanArraySet
public BooleanArraySet()
Creates a new empty array set.
-
BooleanArraySet
public BooleanArraySet(int capacity)
Creates a new empty array set of given initial capacity.- Parameters:
capacity
- the initial capacity.
-
BooleanArraySet
public BooleanArraySet(BooleanCollection c)
Creates a new array set copying the contents of a given collection.- Parameters:
c
- a collection.
-
BooleanArraySet
public BooleanArraySet(java.util.Collection<? extends java.lang.Boolean> c)
Creates a new array set copying the contents of a given set.- Parameters:
c
- a collection.
-
BooleanArraySet
public BooleanArraySet(BooleanSet c)
Creates a new array set copying the contents of a given collection.- Parameters:
c
- a collection.
-
BooleanArraySet
public BooleanArraySet(java.util.Set<? extends java.lang.Boolean> c)
Creates a new array set copying the contents of a given set.- Parameters:
c
- a collection.
-
BooleanArraySet
public BooleanArraySet(boolean[] 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
size
elements ofa
are distinct.- Parameters:
a
- the backing array.size
- the number of valid elements ina
.
-
-
Method Detail
-
of
public static BooleanArraySet of()
Creates a new empty array set.- Returns:
- a new empty array set.
-
of
public static BooleanArraySet of(boolean e)
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
public static BooleanArraySet of(boolean... a)
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:
java.lang.IllegalArgumentException
- if there were duplicate entries.
-
ofUnchecked
public static BooleanArraySet ofUnchecked()
Creates a new empty array set.- Returns:
- a new empty array set.
-
ofUnchecked
public static BooleanArraySet ofUnchecked(boolean... a)
Creates a new array set using an array of elements.It is the responsibility of the caller to ensure that the elements of
a
are distinct.- Parameters:
a
- the backing array of the returned array set.- Returns:
- a new array set containing the elements in
a
.
-
iterator
public BooleanIterator iterator()
Description copied from interface:BooleanCollection
Returns a type-specific iterator on the elements of this collection.- Specified by:
iterator
in interfaceBooleanCollection
- Specified by:
iterator
in interfaceBooleanIterable
- Specified by:
iterator
in interfaceBooleanSet
- Specified by:
iterator
in interfacejava.util.Collection<java.lang.Boolean>
- Specified by:
iterator
in interfacejava.lang.Iterable<java.lang.Boolean>
- Specified by:
iterator
in interfacejava.util.Set<java.lang.Boolean>
- Specified by:
iterator
in classAbstractBooleanSet
- Returns:
- a type-specific iterator on the elements of this collection.
- See Also:
Iterable.iterator()
-
spliterator
public BooleanSpliterator 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.In addition to the usual trait of
DISTINCT
for 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:
spliterator
in interfaceBooleanCollection
- Specified by:
spliterator
in interfaceBooleanIterable
- Specified by:
spliterator
in interfaceBooleanSet
- Specified by:
spliterator
in interfacejava.util.Collection<java.lang.Boolean>
- Specified by:
spliterator
in interfacejava.lang.Iterable<java.lang.Boolean>
- Specified by:
spliterator
in interfacejava.util.Set<java.lang.Boolean>
- Returns:
- a type-specific spliterator on the elements of this collection.
-
contains
public boolean contains(boolean k)
Description copied from class:AbstractBooleanCollection
Returnstrue
if this collection contains the specified element.- Specified by:
contains
in interfaceBooleanCollection
- Overrides:
contains
in classAbstractBooleanCollection
- See Also:
Collection.contains(Object)
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection<java.lang.Boolean>
- Specified by:
size
in interfacejava.util.Set<java.lang.Boolean>
- Specified by:
size
in classjava.util.AbstractCollection<java.lang.Boolean>
-
remove
public boolean remove(boolean k)
Description copied from class:AbstractBooleanSet
Removes an element from this set. Delegates to the type-specificrem()
method implemented by type-specific abstractCollection
superclass.- Specified by:
remove
in interfaceBooleanSet
- Overrides:
remove
in classAbstractBooleanSet
- See Also:
Collection.remove(Object)
-
add
public boolean add(boolean k)
Description copied from class:AbstractBooleanCollection
Ensures that this collection contains the specified element (optional operation).- Specified by:
add
in interfaceBooleanCollection
- Overrides:
add
in classAbstractBooleanCollection
- See Also:
Collection.add(Object)
-
clear
public void clear()
- Specified by:
clear
in interfacejava.util.Collection<java.lang.Boolean>
- Specified by:
clear
in interfacejava.util.Set<java.lang.Boolean>
- Overrides:
clear
in classjava.util.AbstractCollection<java.lang.Boolean>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Collection<java.lang.Boolean>
- Specified by:
isEmpty
in interfacejava.util.Set<java.lang.Boolean>
- Overrides:
isEmpty
in classjava.util.AbstractCollection<java.lang.Boolean>
-
toBooleanArray
public boolean[] toBooleanArray()
Description copied from interface:BooleanCollection
Returns a primitive type array containing the items of this collection.- Specified by:
toBooleanArray
in interfaceBooleanCollection
- Overrides:
toBooleanArray
in classAbstractBooleanCollection
- Returns:
- a primitive type array containing the items of this collection.
- See Also:
Collection.toArray()
-
toArray
public boolean[] toArray(boolean[] a)
Description copied from interface:BooleanCollection
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.- Specified by:
toArray
in interfaceBooleanCollection
- Overrides:
toArray
in classAbstractBooleanCollection
- 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[])
-
clone
public BooleanArraySet 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.
-
-