Class ConcurrentLongHashMap<V>

  • Type Parameters:
    V -

    public class ConcurrentLongHashMap<V>
    extends java.lang.Object
    Map from long to an Object.

    Provides similar methods as a ConcurrentMap<long,Object> with 2 differences:

    1. No boxing/unboxing from long -> Long
    2. Open hash map with linear probing, no node allocations to store the values
    WARN: method forEach do not guarantee thread safety, nor do the keys and values method.
    The forEach method is specifically designed for single-threaded usage. When iterating over a map with concurrent writes, it becomes possible for new values to be either observed or not observed. There is no guarantee that if we write value1 and value2, and are able to see value2, then we will also see value1. In some cases, it is even possible to encounter two mappings with the same key, leading the keys method to return a List containing two identical keys.
    It is crucial to understand that the results obtained from aggregate status methods such as keys and values are typically reliable only when the map is not undergoing concurrent updates from other threads. When concurrent updates are involved, the results of these methods reflect transient states that may be suitable for monitoring or estimation purposes, but not for program control.
    • Constructor Detail

      • ConcurrentLongHashMap

        public ConcurrentLongHashMap()
      • ConcurrentLongHashMap

        public ConcurrentLongHashMap​(int expectedItems)
      • ConcurrentLongHashMap

        public ConcurrentLongHashMap​(int expectedItems,
                                     int concurrencyLevel)
      • ConcurrentLongHashMap

        public ConcurrentLongHashMap​(int expectedItems,
                                     int concurrencyLevel,
                                     float mapFillFactor,
                                     float mapIdleFactor,
                                     boolean autoShrink,
                                     float expandFactor,
                                     float shrinkFactor)
    • Method Detail

      • size

        public long size()
      • getUsedBucketCount

        long getUsedBucketCount()
      • capacity

        public long capacity()
      • isEmpty

        public boolean isEmpty()
      • get

        public V get​(long key)
      • containsKey

        public boolean containsKey​(long key)
      • put

        public V put​(long key,
                     V value)
      • putIfAbsent

        public V putIfAbsent​(long key,
                             V value)
      • computeIfAbsent

        public V computeIfAbsent​(long key,
                                 java.util.function.LongFunction<V> provider)
      • remove

        public V remove​(long key)
      • remove

        public boolean remove​(long key,
                              java.lang.Object value)
      • clear

        public void clear()
      • forEach

        public void forEach​(ConcurrentLongHashMap.EntryProcessor<V> processor)
        Iterate over all the entries in the map and apply the processor function to each of them.

        Warning: Do Not Guarantee Thread-Safety.

        processor - the processor to apply to each entry
      • keys

        public java.util.List<java.lang.Long> keys()
        a new list of all keys (makes a copy)
      • values

        public java.util.List<V> values()
        a new list of all keys (makes a copy)
      • hash

        static final long hash​(long key)
      • signSafeMod

        static final int signSafeMod​(long n,
                                     int max)