Class WeakConcurrentSet<V>

java.lang.Object
com.pnfsoftware.jeb.util.concurrent.WeakConcurrentSet<V>
All Implemented Interfaces:
Iterable<V>, Runnable

public class WeakConcurrentSet<V> extends Object implements Runnable, 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.

  • Constructor Details

  • Method Details

    • 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 Runnable
    • expungeStaleEntries

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

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

      public Iterator<V> iterator()
      Specified by:
      iterator in interface Iterable<V>