Class WeakConcurrentSet<V>

  • All Implemented Interfaces:
    java.lang.Iterable<V>, java.lang.Runnable

    public class WeakConcurrentSet<V>
    extends java.lang.Object
    implements java.lang.Runnable, java.lang.Iterable<V>

    A thread-safe set with weak values. Entries are based on a key's system hash code and keys are considered equal only by reference equality.

    This class does not implement the Set interface because this implementation is incompatible with the set contract. While iterating over a set's entries, any value that has not passed iteration is referenced non-weakly.
    • Method Detail

      • add

        public boolean add​(V value)
        Parameters:
        value - The value to add to the set.
        Returns:
        true if the value was added to the set and was not contained before.
      • contains

        public boolean contains​(V value)
        Parameters:
        value - The value to check if it is contained in the set.
        Returns:
        true if the set contains the value.
      • remove

        public boolean remove​(V value)
        Parameters:
        value - The value to remove from the set.
        Returns:
        true if the value is contained in the set.
      • clear

        public void clear()
        Clears the set.
      • approximateSize

        public int approximateSize()
        Returns the approximate size of this set where the returned number is at least as big as the actual number of entries.
        Returns:
        The minimum size of this set.
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
      • expungeStaleEntries

        public void expungeStaleEntries()
        Cleans all unused references.
      • getCleanerThread

        public java.lang.Thread getCleanerThread()
        Returns:
        The cleaner thread or null if no such thread was set.
      • iterator

        public java.util.Iterator<V> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<V>