Class BooleanArraySet

java.lang.Object
java.util.AbstractCollection<java.lang.Boolean>
All Implemented Interfaces:
BooleanCollection, it.unimi.dsi.fastutil.booleans.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

    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)
    Returns true if this collection contains the specified element.
    boolean isEmpty()  
    it.unimi.dsi.fastutil.booleans.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 java.util.AbstractCollection

    toArray, toArray

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait

    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

    Methods inherited from interface java.util.Collection

    parallelStream, stream, toArray

    Methods inherited from interface java.util.Set

    addAll, containsAll, removeAll, retainAll, toArray, toArray
  • Constructor Details

    • 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 of a are distinct.

      Parameters:
      a - the backing array.
      size - the number of valid elements in a.
  • Method Details

    • 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 it.unimi.dsi.fastutil.booleans.BooleanIterator iterator()
      Description copied from interface: BooleanCollection
      Returns a type-specific iterator on the elements of this collection.
      Specified by:
      iterator in interface BooleanCollection
      Specified by:
      iterator in interface it.unimi.dsi.fastutil.booleans.BooleanIterable
      Specified by:
      iterator in interface BooleanSet
      Specified by:
      iterator in interface java.util.Collection<java.lang.Boolean>
      Specified by:
      iterator in interface java.lang.Iterable<java.lang.Boolean>
      Specified by:
      iterator in interface java.util.Set<java.lang.Boolean>
      Specified by:
      iterator in class AbstractBooleanSet
      Returns:
      a type-specific iterator on the elements of this collection.
    • 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 trait ORDERED.

      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 first trySplit() will result in unspecified behavior.

      Specified by:
      spliterator in interface BooleanCollection
      Specified by:
      spliterator in interface it.unimi.dsi.fastutil.booleans.BooleanIterable
      Specified by:
      spliterator in interface BooleanSet
      Specified by:
      spliterator in interface java.util.Collection<java.lang.Boolean>
      Specified by:
      spliterator in interface java.lang.Iterable<java.lang.Boolean>
      Specified by:
      spliterator in interface java.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
      Returns true if this collection contains the specified element.
      Specified by:
      contains in interface BooleanCollection
      Overrides:
      contains in class AbstractBooleanCollection
      See Also:
      Collection.contains(Object)
    • size

      public int size()
      Specified by:
      size in interface java.util.Collection<java.lang.Boolean>
      Specified by:
      size in interface java.util.Set<java.lang.Boolean>
      Specified by:
      size in class java.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-specific rem() method implemented by type-specific abstract Collection superclass.
      Specified by:
      remove in interface BooleanSet
      Overrides:
      remove in class AbstractBooleanSet
      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 interface BooleanCollection
      Overrides:
      add in class AbstractBooleanCollection
      See Also:
      Collection.add(Object)
    • clear

      public void clear()
      Specified by:
      clear in interface java.util.Collection<java.lang.Boolean>
      Specified by:
      clear in interface java.util.Set<java.lang.Boolean>
      Overrides:
      clear in class java.util.AbstractCollection<java.lang.Boolean>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface java.util.Collection<java.lang.Boolean>
      Specified by:
      isEmpty in interface java.util.Set<java.lang.Boolean>
      Overrides:
      isEmpty in class java.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 interface BooleanCollection
      Overrides:
      toBooleanArray in class AbstractBooleanCollection
      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 interface BooleanCollection
      Overrides:
      toArray in class AbstractBooleanCollection
      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.