Class Index<K,V>

java.lang.Object
org.apache.pekko.util.Index<K,V>
Direct Known Subclasses:
ConcurrentMultiMap

public class Index<K,V> extends Object
An implementation of a ConcurrentMultiMap Adds/remove is serialized over the specified key Reads are fully concurrent &lt;-- el-cheapo
  • Constructor Summary

    Constructors
    Constructor
    Description
    Index(int mapSize, Comparator<V> valueComparator)
     
    Index(int mapSize, scala.Function2<V,V,Object> cmp)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Removes all keys and all values
    scala.Option<V>
    findValue(K key, scala.Function1<V,Object> f)
     
    void
    foreach(scala.Function2<K,V,scala.runtime.BoxedUnit> fun)
    Applies the supplied function to all keys and their values
    boolean
     
    scala.collection.Iterable<K>
    Returns the key set.
    int
     
    boolean
    put(K key, V value)
    Associates the value of type V with the key of type K
    scala.Option<scala.collection.Iterable<V>>
    remove(K key)
    Disassociates all the values for the specified key
    boolean
    remove(K key, V value)
    Disassociates the value of type V from the key of type K
    void
    removeValue(V value)
    Removes the specified value from all keys
     
    scala.collection.Iterator<V>
    Returns an Iterator of V containing the values for the supplied key, or an empty iterator if the key doesn't exist
    scala.collection.immutable.Set<V>
    Returns the union of all value sets.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Index

      public Index(int mapSize, Comparator<V> valueComparator)
    • Index

      public Index(int mapSize, scala.Function2<V,V,Object> cmp)
  • Method Details

    • clear

      public void clear()
      Removes all keys and all values
    • findValue

      public scala.Option<V> findValue(K key, scala.Function1<V,Object> f)
      Returns:
      Some(value) for the first matching value where the supplied function returns true for the given key, if no matches it returns None
    • foreach

      public void foreach(scala.Function2<K,V,scala.runtime.BoxedUnit> fun)
      Applies the supplied function to all keys and their values
    • isEmpty

      public boolean isEmpty()
      Returns:
      true if the underlying containers is empty, may report false negatives when the last remove is underway
    • keys

      public scala.collection.Iterable<K> keys()
      Returns the key set.
    • mapSize

      public int mapSize()
    • put

      public boolean put(K key, V value)
      Associates the value of type V with the key of type K
      Returns:
      true if the value didn't exist for the key previously, and false otherwise
    • remove

      public boolean remove(K key, V value)
      Disassociates the value of type V from the key of type K
      Returns:
      true if the value was disassociated from the key and false if it wasn't previously associated with the key
    • remove

      public scala.Option<scala.collection.Iterable<V>> remove(K key)
      Disassociates all the values for the specified key
      Returns:
      None if the key wasn't associated at all, or Some(scala.Iterable[V]) if it was associated
    • removeValue

      public void removeValue(V value)
      Removes the specified value from all keys
    • valueComparator

      public Comparator<V> valueComparator()
    • valueIterator

      public scala.collection.Iterator<V> valueIterator(K key)
      Returns an Iterator of V containing the values for the supplied key, or an empty iterator if the key doesn't exist
    • values

      public scala.collection.immutable.Set<V> values()
      Returns the union of all value sets.