Class ArrayUnenforcedSet<E>

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

    public class ArrayUnenforcedSet<E>
    extends java.util.ArrayList<E>
    implements java.util.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
    • Field Summary

      • Fields inherited from class java.util.AbstractList

        modCount
    • Constructor Summary

      Constructors 
      Constructor Description
      ArrayUnenforcedSet()
      Constructs a new empty set
      ArrayUnenforcedSet​(int n)
      Constructs an empty set with the specified initial capacity.
      ArrayUnenforcedSet​(java.util.Collection<? extends E> c)
      Constructs a set containing the elements of the specified collection.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object o)  
      int hashCode()  
      • Methods inherited from class java.util.ArrayList

        add, add, addAll, addAll, clear, clone, contains, ensureCapacity, forEach, get, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeIf, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize
      • Methods inherited from class java.util.AbstractCollection

        containsAll, toString
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        parallelStream, removeIf, stream, toArray
      • Methods inherited from interface java.lang.Iterable

        forEach
      • Methods inherited from interface java.util.List

        containsAll
      • Methods inherited from interface java.util.Set

        add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, spliterator, toArray, toArray
    • Constructor Detail

      • ArrayUnenforcedSet

        public ArrayUnenforcedSet()
        Constructs a new empty set
      • ArrayUnenforcedSet

        public ArrayUnenforcedSet​(java.util.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:
        java.lang.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:
        java.lang.IllegalArgumentException - if the specified initial capacity is negative
    • Method Detail

      • equals

        public boolean equals​(java.lang.Object o)
        Specified by:
        equals in interface java.util.Collection<E>
        Specified by:
        equals in interface java.util.List<E>
        Specified by:
        equals in interface java.util.Set<E>
        Overrides:
        equals in class java.util.ArrayList<E>
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface java.util.Collection<E>
        Specified by:
        hashCode in interface java.util.List<E>
        Specified by:
        hashCode in interface java.util.Set<E>
        Overrides:
        hashCode in class java.util.ArrayList<E>