Class CharArraySet

  • All Implemented Interfaces:
    CharCollection, CharIterable, CharSet, java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<java.lang.Character>, java.util.Collection<java.lang.Character>, java.util.Set<java.lang.Character>

    public class CharArraySet
    extends AbstractCharSet
    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

      • CharArraySet

        public CharArraySet​(char[] 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.
      • CharArraySet

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

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

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

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

        public CharArraySet​(char[] 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 CharIterator iterator()
        Description copied from interface: CharCollection
        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 CharCollection
        Specified by:
        iterator in interface CharIterable
        Specified by:
        iterator in interface CharSet
        Specified by:
        iterator in interface java.util.Collection<java.lang.Character>
        Specified by:
        iterator in interface java.lang.Iterable<java.lang.Character>
        Specified by:
        iterator in interface java.util.Set<java.lang.Character>
        Specified by:
        iterator in class AbstractCharSet
        Returns:
        a type-specific iterator on the elements of this collection.
        See Also:
        Iterable.iterator()
      • contains

        public boolean contains​(char k)
        Description copied from class: AbstractCharCollection
        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 CharCollection
        Overrides:
        contains in class AbstractCharCollection
        See Also:
        Collection.contains(Object)
      • size

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

        public boolean remove​(char k)
        Description copied from class: AbstractCharSet
        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 CharSet
        Overrides:
        remove in class AbstractCharSet
        See Also:
        Collection.remove(Object)
      • add

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

        This implementation always throws an UnsupportedOperationException.

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

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

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

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