Class ArrayUnenforcedSet<E>

Type Parameters:
E - the element type
All Implemented Interfaces:, 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.

John V. Sichi
See Also:
Serialized Form
  • Field Summary

    Fields inherited from class java.util.AbstractList

  • Constructor Summary

    Constructor Description
    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

    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


    Methods inherited from interface java.util.List


    Methods inherited from interface java.util.Set

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

    • 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.
      c - the collection whose elements are to be placed into this set
      java.lang.NullPointerException - if the specified collection is null
    • ArrayUnenforcedSet

      public ArrayUnenforcedSet​(int n)
      Constructs an empty set with the specified initial capacity.
      n - the initial capacity of the set
      java.lang.IllegalArgumentException - if the specified initial capacity is negative
  • Method Details

    • 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>
      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>
      hashCode in class java.util.ArrayList<E>