Class LongArraySet

  • All Implemented Interfaces:
    LongCollection, LongIterable, LongSet, java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<java.lang.Long>, java.util.Collection<java.lang.Long>, java.util.Set<java.lang.Long>

    public class LongArraySet
    extends AbstractLongSet
    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 Detail

      • LongArraySet

        public LongArraySet​(long[] a)
        Creates a new array set using the given backing array. The resulting set will have as many elements as the array.

        It is responsibility of the caller that the elements of a are distinct.

        Parameters:
        a - the backing array.
      • LongArraySet

        public LongArraySet()
        Creates a new empty array set.
      • LongArraySet

        public LongArraySet​(int capacity)
        Creates a new empty array set of given initial capacity.
        Parameters:
        capacity - the initial capacity.
      • LongArraySet

        public LongArraySet​(LongCollection c)
        Creates a new array set copying the contents of a given collection.
        Parameters:
        c - a collection.
      • LongArraySet

        public LongArraySet​(java.util.Collection<? extends java.lang.Long> c)
        Creates a new array set copying the contents of a given set.
        Parameters:
        c - a collection.
      • LongArraySet

        public LongArraySet​(LongSet c)
        Creates a new array set copying the contents of a given collection.
        Parameters:
        c - a collection.
      • LongArraySet

        public LongArraySet​(java.util.Set<? extends java.lang.Long> c)
        Creates a new array set copying the contents of a given set.
        Parameters:
        c - a collection.
      • LongArraySet

        public LongArraySet​(long[] a,
                            int size)
        Creates a new array set using the given backing array and the given number of elements of the array.

        It is responsibility of the caller that the first size elements of a are distinct.

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

      • iterator

        public LongIterator iterator()
        Description copied from interface: LongCollection
        Returns a type-specific iterator on the elements of this collection.

        Note that 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 extends Collection.

        Specified by:
        iterator in interface java.util.Collection<java.lang.Long>
        Specified by:
        iterator in interface java.lang.Iterable<java.lang.Long>
        Specified by:
        iterator in interface LongCollection
        Specified by:
        iterator in interface LongIterable
        Specified by:
        iterator in interface LongSet
        Specified by:
        iterator in interface java.util.Set<java.lang.Long>
        Specified by:
        iterator in class AbstractLongSet
        Returns:
        a type-specific iterator on the elements of this collection.
        See Also:
        Iterable.iterator()
      • contains

        public boolean contains​(long k)
        Description copied from class: AbstractLongCollection
        Returns true if this collection contains the specified element.

        This implementation iterates over the elements in the collection, looking for the specified element.

        Specified by:
        contains in interface LongCollection
        Overrides:
        contains in class AbstractLongCollection
        See Also:
        Collection.contains(Object)
      • size

        public int size()
        Specified by:
        size in interface java.util.Collection<java.lang.Long>
        Specified by:
        size in interface java.util.Set<java.lang.Long>
        Specified by:
        size in class java.util.AbstractCollection<java.lang.Long>
      • remove

        public boolean remove​(long k)
        Description copied from class: AbstractLongSet
        Removes an element from this set.

        Note that the corresponding method of a type-specific collection is rem(). This unfortunate situation is caused by the clash with the similarly named index-based method in the List interface. Delegates to the type-specific rem() method implemented by type-specific abstract Collection superclass.

        Specified by:
        remove in interface LongSet
        Overrides:
        remove in class AbstractLongSet
        See Also:
        Collection.remove(Object)
      • add

        public boolean add​(long k)
        Description copied from class: AbstractLongCollection
        Ensures that this collection contains the specified element (optional operation).

        This implementation always throws an UnsupportedOperationException.

        Specified by:
        add in interface LongCollection
        Overrides:
        add in class AbstractLongCollection
        See Also:
        Collection.add(Object)
      • clear

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

        public boolean isEmpty()
        Specified by:
        isEmpty in interface java.util.Collection<java.lang.Long>
        Specified by:
        isEmpty in interface java.util.Set<java.lang.Long>
        Overrides:
        isEmpty in class java.util.AbstractCollection<java.lang.Long>
      • clone

        public LongArraySet 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.