Class ConcurrentLinkedHashMap.Builder<K,V>

java.lang.Object
io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.Builder<K,V>
Type Parameters:
K - The key type
V - The value type
Enclosing class:
ConcurrentLinkedHashMap<K,V>

public static final class ConcurrentLinkedHashMap.Builder<K,V> extends Object
A builder that creates ConcurrentLinkedHashMap instances. It provides a flexible approach for constructing customized instances with a named parameter syntax. It can be used in the following manner:

 ConcurrentMap<Vertex, Set<Edge>> graph = new Builder<Vertex, Set<Edge>>()
     .maximumWeightedCapacity(5000)
     .weigher(Weighers.<Edge>set())
     .build();
 
  • Constructor Details

    • Builder

      public Builder()
      Default constructor.
  • Method Details

    • initialCapacity

      public ConcurrentLinkedHashMap.Builder<K,V> initialCapacity(int initialCapacity)
      Specifies the initial capacity of the hash table (default 16). This is the number of key-value pairs that the hash table can hold before a resize operation is required.
      Parameters:
      initialCapacity - the initial capacity used to size the hash table to accommodate this many entries.
      Returns:
      This builder
      Throws:
      IllegalArgumentException - if the initialCapacity is negative
    • maximumWeightedCapacity

      public ConcurrentLinkedHashMap.Builder<K,V> maximumWeightedCapacity(long capacity)
      Specifies the maximum weighted capacity to coerce the map to and may exceed it temporarily.
      Parameters:
      capacity - the weighted threshold to bound the map by
      Returns:
      This builder
      Throws:
      IllegalArgumentException - if the maximumWeightedCapacity is negative
    • concurrencyLevel

      public ConcurrentLinkedHashMap.Builder<K,V> concurrencyLevel(int concurrencyLevel)
      Specifies the estimated number of concurrently updating threads. The implementation performs internal sizing to try to accommodate this many threads (default 16).
      Parameters:
      concurrencyLevel - the estimated number of concurrently updating threads
      Returns:
      This builder
      Throws:
      IllegalArgumentException - if the concurrencyLevel is less than or equal to zero
    • listener

      public ConcurrentLinkedHashMap.Builder<K,V> listener(EvictionListener<K,V> listener)
      Specifies an optional listener that is registered for notification when an entry is evicted.
      Parameters:
      listener - the object to forward evicted entries to
      Returns:
      This builder
      Throws:
      NullPointerException - if the listener is null
    • weigher

      public ConcurrentLinkedHashMap.Builder<K,V> weigher(Weigher<? super V> weigher)
      Specifies an algorithm to determine how many the units of capacity a value consumes. The default algorithm bounds the map by the number of key-value pairs by giving each entry a weight of 1.
      Parameters:
      weigher - the algorithm to determine a value's weight
      Returns:
      This builder
      Throws:
      NullPointerException - if the weigher is null
    • weigher

      public ConcurrentLinkedHashMap.Builder<K,V> weigher(EntryWeigher<? super K,? super V> weigher)
      Specifies an algorithm to determine how many the units of capacity an entry consumes. The default algorithm bounds the map by the number of key-value pairs by giving each entry a weight of 1.
      Parameters:
      weigher - the algorithm to determine an entry's weight
      Returns:
      This builder
      Throws:
      NullPointerException - if the weigher is null
    • build

      public ConcurrentLinkedHashMap<K,V> build()
      Creates a new ConcurrentLinkedHashMap instance.
      Returns:
      This builder
      Throws:
      IllegalStateException - if the maximum weighted capacity was not set