Class ArrayUnenforcedSet<E>

  • Type Parameters:
    E - the element type
    All Implemented Interfaces:
    Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess, Set<E>

    public class ArrayUnenforcedSet<E>
    extends ArrayList<E>
    implements Set<E>
    Helper for efficiently representing small sets whose elements are known to be unique by construction, implying we don't need to enforce the uniqueness property in the data structure itself. Use with caution.

    Note that for equals/hashCode, the class implements the Set behavior (unordered), not the list behavior (ordered); the fact that it subclasses ArrayList should be considered an implementation detail.

    Author:
    John V. Sichi
    See Also:
    Serialized Form
    • Constructor Detail

      • ArrayUnenforcedSet

        public ArrayUnenforcedSet()
        Constructs a new empty set
      • ArrayUnenforcedSet

        public ArrayUnenforcedSet​(Collection<? extends E> c)
        Constructs a set containing the elements of the specified collection.
        Parameters:
        c - the collection whose elements are to be placed into this set
        Throws:
        NullPointerException - if the specified collection is null
      • ArrayUnenforcedSet

        public ArrayUnenforcedSet​(int n)
        Constructs an empty set with the specified initial capacity.
        Parameters:
        n - the initial capacity of the set
        Throws:
        IllegalArgumentException - if the specified initial capacity is negative