![]() |
VOOZH | about |
A HashMap is a part of Java’s Collection Framework and implements the Map interface. It stores elements in key-value pairs, where, Keys are unique. and Values can be duplicated.
John -> 25 Jane -> 30 Jim -> 35
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable
It takes two parameters, namely as follows:
Note: Order is not guaranteed in HashMap output may vary when you run your program
It extends AbstractMap and implements the Map Interface.
The capacity of a HashMap is the number of buckets it can hold for storing entries.
new capacity=old capacity×2
HashMap provides 4 constructors and the access modifier of each is public.
It is the default constructor which creates an instance of HashMap with an initial capacity of 16 and a load factor of 0.75.
HashMap<K, V> hm = new HashMap<K, V>();
It creates a HashMap instance with a specified initial capacity and load factor of 0.75.
HashMap<K, V> hm = new HashMap<K, V>();
It creates a HashMap instance with a specified initial capacity and specified load factor.
HashMap<K, V> hm = new HashMap<K, V>();
It creates an instance of HashMap with the same mappings as the specified map.
Map<Integer, String> map = new HashMap<>();
HashMap<Integer, String> hm = new HashMap<>(map);
To add an element to the map, we can use the put() method. However, the insertion order is not retained in the Hashmap.
Mappings of HashMap hm1 are : {1=Geeks, 2=For, 3=Geeks}
Mapping of HashMap hm2 are : {1=Geeks, 2=For, 3=Geeks}
It is used to retrieve the value associated with a given key from the HashMap, returning null if the key is not present.
Output:
Age of John: 25
Age of Jane: 30All entries: John -> 25
Jane -> 30
Jim -> 35
We can change a value in a HashMap by using the put() method with the same key, which replaces the old value with the new one.
Initial Map {1=Geeks, 2=Geeks, 3=Geeks}
Updated Map {1=Geeks, 2=For, 3=Geeks}
To remove an element from the Map, we can use the remove() method. It removes the mapping for the specified key if it is present and returns the value associated with that key, or null if the key is not found.
Mappings of HashMap are : {1=Geeks, 2=For, 3=Geeks, 4=For}
Mappings after removal are : {1=Geeks, 2=For, 3=Geeks}
We can use an Iterator with Map.Entry<?, ?> to traverse a HashMap and print its entries using the next() method.
Key: vaibhav Value: 20 Key: vishal Value: 10 Key: sachin Value: 30
| Operation | Time Complexity | Space Complexity |
|---|---|---|
| Adding elements in HashMap | O(1) | O(1) (extra) |
| Removing elements from HashMap | O(1) | O(1) (extra) |
| Extracting elements from HashMap | O(1) | O(1) (extra) |
Method | Description |
|---|---|
| clear() | Removes all of the mappings from this map. |
| clone() | Returns a shallow copy of this HashMap instance. |
| compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) | Attempts to compute a mapping for the specified key and its current mapped value |
| computeIfAbsent(K key, Function<?super K,? extends V> mappingFunction) | Adds computed value if key absent/null. |
| computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) | If the value for the specified key is present and non-null, attempts to compute a new mapping given the key and its current mapped value. |
| containsKey(Object key) | Returns true if this map contains a mapping for the specified key. |
| containsValue(Object value) | Returns true if this map maps one or more keys to the specified value. |
| entrySet() | Returns a Set view of the mappings contained in this map. |
| get(Object key) | Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key. |
| isEmpty() | Returns true if this map contains no key-value mappings. |
| keySet() | Returns a Set view of the keys contained in this map. |
| merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) | If the specified key is not already associated with a value or is associated with null, associate it with the given non-null value. |
| put(K key, V value) | Associates the specified value with the specified key in this map. |
| putAll(Map<? extends K,? extends V> m) | Copies all of the mappings from the specified map to this map. |
| remove(Object key) | Removes the mapping for the specified key from this map if present. |
| size() | Returns the number of key-value mappings in this map. |
| values() | Returns a Collection view of the values contained in this map. |
Method | Description |
|---|---|
| Compares the specified object with this map for equality. | |
| Returns the hash code value for this map. | |
| Returns a string representation of this map. |
Method | Description |
|---|---|
| equals() | Compares the specified object with this map for equality. |
| Performs the given action for each entry in this map until all entries have been processed or the action throws an exception. | |
| getOrDefault(Object key, V defaultValue) | Returns the value to which the specified key is mapped, or defaultValue if this map contains no mapping for the key. |
| hashCode() | Returns the hash code value for this map. |
| putIfAbsent(K key, V value) | If the specified key is not already associated with a value (or is mapped to null) associates it with the given value and returns null, else returns the current value. |
| remove(Object key, Object value) | Removes the entry for the specified key only if it is currently mapped to the specified value. |
| replace(K key, V value) | Replaces the entry for the specified key only if it is currently mapped to some value. |
| replace(K key, V oldValue, V newValue) | Replaces the entry for the specified key only if currently mapped to the specified value. |
replaceAll(BiFunction<? super K,? super V,? extends V> function) | Replaces each entry's value with the result of invoking the given function on that entry until all entries have been processed or the function throws an exception. |