Package com.cedarsoftware.util
Class ConcurrentHashMapNullSafe<K,V>
java.lang.Object
com.cedarsoftware.util.ConcurrentHashMapNullSafe<K,V>
- Type Parameters:
K
- The type of keys maintained by this mapV
- The type of mapped values
- All Implemented Interfaces:
Map<K,
V>
ConcurrentHashMapNullSafe is a thread-safe implementation of ConcurrentHashMap
that allows null keys and null values by using sentinel objects internally.
- Author:
- John DeRegnaucourt
Copyright Cedar Software LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
License
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
Nested Class Summary
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new, empty map with default initial capacity (16) and load factor (0.75).ConcurrentHashMapNullSafe
(int initialCapacity) Constructs a new, empty map with the specified initial capacity and default load factor (0.75).ConcurrentHashMapNullSafe
(int initialCapacity, float loadFactor) Constructs a new, empty map with the specified initial capacity and load factor.ConcurrentHashMapNullSafe
(Map<? extends K, ? extends V> m) Constructs a new map with the same mappings as the specified map. -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
computeIfAbsent
(K key, Function<? super K, ? extends V> mappingFunction) boolean
containsKey
(Object key) boolean
containsValue
(Object value) entrySet()
boolean
Overrides the equals method to ensure proper comparison between two maps.getOrDefault
(Object key, V defaultValue) int
hashCode()
Overrides the hashCode method to ensure consistency with equals.boolean
isEmpty()
keySet()
void
putIfAbsent
(K key, V value) boolean
boolean
int
size()
toString()
Overrides the toString method to provide a string representation of the map.values()
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Map
computeIfPresent, forEach, replaceAll
-
Constructor Details
-
ConcurrentHashMapNullSafe
public ConcurrentHashMapNullSafe()Constructs a new, empty map with default initial capacity (16) and load factor (0.75). -
ConcurrentHashMapNullSafe
public ConcurrentHashMapNullSafe(int initialCapacity) Constructs a new, empty map with the specified initial capacity and default load factor (0.75).- Parameters:
initialCapacity
- the initial capacity. The implementation performs internal sizing to accommodate this many elements.- Throws:
IllegalArgumentException
- if the initial capacity is negative.
-
ConcurrentHashMapNullSafe
public ConcurrentHashMapNullSafe(int initialCapacity, float loadFactor) Constructs a new, empty map with the specified initial capacity and load factor.- Parameters:
initialCapacity
- the initial capacity. The implementation performs internal sizing to accommodate this many elements.loadFactor
- the load factor threshold, used to control resizing. Resizing may be performed when the average number of elements per bin exceeds this threshold.- Throws:
IllegalArgumentException
- if the initial capacity is negative or the load factor is nonpositive
-
ConcurrentHashMapNullSafe
Constructs a new map with the same mappings as the specified map.- Parameters:
m
- the map whose mappings are to be placed in this map- Throws:
NullPointerException
- if the specified map is null
-
-
Method Details
-
size
public int size() -
isEmpty
public boolean isEmpty() -
containsKey
- Specified by:
containsKey
in interfaceMap<K,
V>
-
containsValue
- Specified by:
containsValue
in interfaceMap<K,
V>
-
get
-
put
-
remove
-
putAll
-
clear
public void clear() -
keySet
-
values
-
entrySet
-
getOrDefault
- Specified by:
getOrDefault
in interfaceMap<K,
V>
-
putIfAbsent
- Specified by:
putIfAbsent
in interfaceMap<K,
V>
-
remove
-
replace
-
replace
-
computeIfAbsent
- Specified by:
computeIfAbsent
in interfaceMap<K,
V>
-
compute
-
merge
-
equals
Overrides the equals method to ensure proper comparison between two maps. Two maps are considered equal if they contain the same key-value mappings. -
hashCode
public int hashCode()Overrides the hashCode method to ensure consistency with equals. The hash code of a map is defined to be the sum of the hash codes of each entry in the map. -
toString
Overrides the toString method to provide a string representation of the map. The string representation consists of a list of key-value mappings in the order returned by the map's entrySet view's iterator, enclosed in braces ("{}"). Adjacent mappings are separated by the characters ", " (comma and space).
-