Top Description Constructors Methods
reactor.netty.internal.util

public final Class MapUtils

extends Object
Class Inheritance
Imports
java.util.Map, java.util.function.Function

This class contains temporary workarounds for Java 8 Map issues.

Note

This utility class is for internal use only. It can be removed at any time.

Author
zimatars
Since
1.0.15

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static int

Returns:

the initial capacity for the Map
calculateInitialCapacity
(int
the expected size
expectedSize
)

This is a temporary workaround for Java 8 issue https://bugs.openjdk.org/browse/JDK-8186958.

public static <K, V> V

Returns:

the current (existing or computed) value associated with the specified key, or null if the computed value is null
computeIfAbsent
(Map<K, V>
the ConcurrentHashMap instance
map
,
K
key with which the specified value is to be associated
key
,
Function<K, V>
the function to compute a value
mappingFunction
)

This is a temporary workaround for Java 8 specific performance issue https://bugs.openjdk.org/browse/JDK-8161372.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

MapUtilsback to summary
private MapUtils()

Method Detail

calculateInitialCapacityback to summary
public static int calculateInitialCapacity(int expectedSize)

This is a temporary workaround for Java 8 issue https://bugs.openjdk.org/browse/JDK-8186958. Fix is available in Java 19.

Calculate the initial capacity for the Map from the expected size and the default load factor for the Map (0.75).

Parameters
expectedSize:int

the expected size

Returns:int

the initial capacity for the Map

Since
1.0.31
computeIfAbsentback to summary
public static <K, V> V computeIfAbsent(Map<K, V> map, K key, Function<K, V> mappingFunction)

This is a temporary workaround for Java 8 specific performance issue https://bugs.openjdk.org/browse/JDK-8161372. Fix is available in Java 9.

ConcurrentHashMap.computeIfAbsent(k,v) locks when k is present. Add pre-screen before locking inside computeIfAbsent.

Note

This utility is not for a general purpose usage. Carefully consider the removal operations from the map. If you have many remove operations that are critical, do not use this pre-screening.

Parameters
map:Map<K, V>

the ConcurrentHashMap instance

key:K

key with which the specified value is to be associated

mappingFunction:Function<K, V>

the function to compute a value

Returns:V

the current (existing or computed) value associated with the specified key, or null if the computed value is null