Package extra166y

Class CustomConcurrentHashMap.KeySet<K>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<K>
extra166y.CustomConcurrentHashMap.KeySet<K>
All Implemented Interfaces:
Serializable, Iterable<K>, Collection<K>, Set<K>
Enclosing class:
CustomConcurrentHashMap<K,V>

public static class CustomConcurrentHashMap.KeySet<K> extends AbstractSet<K> implements Set<K>, Serializable
A hash-based set with properties identical to those of Collections.newSetFromMap applied to a CustomConcurrentHashMap, but possibly more space-efficient. The set does not permit null elements. The set is serializable; however, serializing a set that uses soft or weak references can give unpredictable results.
See Also:
  • Constructor Details

    • KeySet

      public KeySet(CustomConcurrentHashMap.Strength strength, CustomConcurrentHashMap.Equivalence<? super K> equivalence, int expectedSize)
      Creates a set with the given parameters
      Parameters:
      strength - the strength of elements
      equivalence - the Equivalence to use
      expectedSize - an estimate of the number of elements that will be held in the set. If no estimate is known, zero is an acceptable value.
  • Method Details

    • intern

      public K intern(K e)
      Returns an element equivalent to the given element with respect to this set's Equivalence, if such an element exists, else adds and returns the given element.
      Parameters:
      e - the element
      Returns:
      e, or an element equivalent to e.
    • contains

      public boolean contains(Object o)
      Returns true if this set contains an element equivalent to the given element with respect to this set's Equivalence.
      Specified by:
      contains in interface Collection<K>
      Specified by:
      contains in interface Set<K>
      Overrides:
      contains in class AbstractCollection<K>
      Parameters:
      o - element whose presence in this set is to be tested
      Returns:
      true if this set contains the specified element
    • iterator

      public Iterator<K> iterator()
      Returns a weakly consistent iterator over the elements in this set, that may reflect some, all or none of the changes made to the set after the iterator was created.
      Specified by:
      iterator in interface Collection<K>
      Specified by:
      iterator in interface Iterable<K>
      Specified by:
      iterator in interface Set<K>
      Specified by:
      iterator in class AbstractCollection<K>
      Returns:
      an Iterator over the elements in this set
    • add

      public boolean add(K e)
      Adds the specified element to this set if there is not already an element equivalent to the given element with respect to this set's Equivalence.
      Specified by:
      add in interface Collection<K>
      Specified by:
      add in interface Set<K>
      Overrides:
      add in class AbstractCollection<K>
      Parameters:
      e - element to be added to this set
      Returns:
      true if this set did not already contain the specified element
    • remove

      public boolean remove(Object o)
      Removes an element equivalent to the given element with respect to this set's Equivalence, if one is present.
      Specified by:
      remove in interface Collection<K>
      Specified by:
      remove in interface Set<K>
      Overrides:
      remove in class AbstractCollection<K>
      Parameters:
      o - object to be removed from this set, if present
      Returns:
      true if the set contained the specified element
    • isEmpty

      public boolean isEmpty()
      Returns true if this set contains no elements.
      Specified by:
      isEmpty in interface Collection<K>
      Specified by:
      isEmpty in interface Set<K>
      Overrides:
      isEmpty in class AbstractCollection<K>
      Returns:
      true if this set contains no elements
    • size

      public int size()
      Returns the number of elements in this set (its cardinality).
      Specified by:
      size in interface Collection<K>
      Specified by:
      size in interface Set<K>
      Specified by:
      size in class AbstractCollection<K>
      Returns:
      the number of elements in this set (its cardinality)
    • clear

      public void clear()
      Removes all of the elements from this set.
      Specified by:
      clear in interface Collection<K>
      Specified by:
      clear in interface Set<K>
      Overrides:
      clear in class AbstractCollection<K>
    • hashCode

      public int hashCode()
      Returns the sum of the hash codes of each element, as computed by this set's Equivalence.
      Specified by:
      hashCode in interface Collection<K>
      Specified by:
      hashCode in interface Set<K>
      Overrides:
      hashCode in class AbstractSet<K>
      Returns:
      the hash code