The perfect place for easy learning...

Java Programming

×

Topics List


Map Interface in java





The java collection framework has an interface Map that is available inside the java.util package. The Map interface is not a subtype of Collection interface.

🔔 The Map stores the elements as a pair of key and value.

🔔 The Map does not allows duplicate keys, but allows duplicate values.

🔔 In a Map, each key can map to at most one value only.

🔔 In a Map, the order of elements depends on specific implementations, e.g TreeMap and LinkedHashMap have predictable order, while HashMap does not.


The Map interface has the following child interfaces.

Interface Description
Map Maps unique key to value.
Map.Entry Describe an element in key and value pair in a map. Entry is sub interface of Map.
SortedMap It is a child of Map so that key are maintained in an ascending order.
NavigableMap It is a child of SortedMap to handle the retrienal of entries based on closest match searches.

The Map interface has the following three classes.

Class Description
HashMap It implements the Map interface, but it doesn't maintain any order.
LinkedHashMap It implements the Map interface, it also extends HashMap class. It maintains the insertion order.
TreeMap It implements the Map and SortedMap interfaces. It maintains the ascending order.

Map Interface methods

The Map interface contains methods for handling elements of a map. It has the following methods.

The insertion of a key, value pair is said to be an entry in the map terminology.

Method Description
V put(Object key, Object value) Inserts an entry in the map.
void putAll(Map map) Inserts the specified map into the invoking map.
V putIfAbsent(K key, V value) Inserts the specified value with the specified key in the map only if that key does not exist.
Set keySet( ) Returns a Set that contains all the keys of invoking Map.
Collection values( ) Returns a collection that contains all the values of invoking Map.
Set<Map.Entry<K,V>> entrySet() Returns a Set that contains all the keys and values of invoking Map.
V get(Object key) Returns the value associated with the specified key.
V getOrDefault(Object key, V defaultValue) Returns the value associated with the specified key, or defaultValue if the map does not contain the key.
boolean containsValue(Object value) Returns true if specified value found in the map, else return false.
boolean containsKey(Object key) Returns true if specified key found in the map, else return false.
V replace(K key, V value) Used to replace the specified value for the specified key.
boolean replace(K key, V oldValue, V newValue) Used to replaces the oldValue with the newValue for a specified key.
void replaceAll(BiFunction 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.
V merge(K key, V value, BiFunction remappingFunction) If the specified key is not already associated with a value or is associated with null, associates it with the given non-null value.
V compute(K key, BiFunction remappingFunction) Used to compute a mapping for the specified key and its current mapped value.
V computeIfAbsent(K key, Function mappingFunction) Used to compute its value using the given mapping function, if the specified key is not already associated with a value, and enters it into this map unless null.
V computeIfPresent(K key, BiFunction remappingFunction) Used to compute a new mapping given the key and its current mapped value if the value for the specified key is present and non-null.
void forEach(BiConsumer action) It performs the given action for each entry in the map until all entries have been processed or the action throws an exception.
V remove(Object key) Removes an entry for the specified key.
boolean remove(Object key, Object value) Removes the specified values with the associated specified keys from the map.
void clear() Removes all the entries from the map.
boolean equals(Object o) It is used to compare the specified Object with the Map.
int hashCode() Returns the hash code for invoking the Map.
boolean isEmpty() Returns true if the map is empty; otherwise returns false.
int size() Returns total number of entries in the invoking Map.

In the upcoming tutorials, we will discuss in detail how the above methods used to handle the elements of collections like HashMap, LinkedHashMap, and TreeMap.