Java Map Interface A map contains values on the basis of key, i.e. key and value pair. Each key and value pair is known as an entry. A Map contains unique keys. A Map is useful if you have to search, update or delete elements on the basis of a key. Java Map Hierarchy There are two interfaces for implementing Map in java: Map and SortedMap, and three classes: HashMap, LinkedHashMap, and TreeMap. The hierarchy of Java Map is given below: A Map doesn't allow duplicate keys, but you can have duplicate values. HashMap and LinkedHashMap allow null keys and values, but TreeMap doesn't allow any null key or value. A Map can't be traversed, so you need to convert it into Set using keySet() or entrySet() method.
Class |
Description |
HashMap |
HashMap is the implementation of Map, but it doesn't maintain any order. |
LinkedHashMap |
LinkedHashMap is the implementation of Map. It inherits HashMap class. It maintains insertion order. |
TreeMap |
TreeMap is the implementation of Map and SortedMap. It maintains ascending order. |
Useful methods of Map interface
Method |
Description |
V put(Object key, Object value) |
It is used to insert an entry in the map. |
void putAll(Map map) |
It is used to insert the specified map in the map. |
V putIfAbsent(K key, V value) |
It inserts the specified value with the specified key in the map only if it is not already specified. |
V remove(Object key) |
It is used to delete an entry for the specified key. |
boolean remove(Object key, Object value) |
It removes the specified values with the associated specified keys from the map. |
Set keySet() |
It returns the Set view containing all the keys. |
Set<>> entrySet() |
It returns the Set view containing all the keys and values. |
void clear() |
It is used to reset the map. |
V compute(K key, BiFunction remappingFunction) |
It is used to compute a mapping for the specified key and its current mapped value (or null if there is no current mapping). |
V computeIfAbsent(K key, Function mappingFunction) |
It is used to compute its value using the given mapping function, if the specified key is not already associated with a value (or is mapped to null), and enters it into this map unless null. |
V computeIfPresent(K key, BiFunction remappingFunction) |
It is 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. |
boolean containsValue(Object value) |
This method returns true if some value equal to the value exists within the map, else return false. |
boolean containsKey(Object key) |
This method returns true if some key equal to the key exists within the map, else return false. |
boolean equals(Object o) |
It is used to compare the specified Object with the Map. |
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 get(Object key) |
This method returns the object that contains the value associated with the key. |
V getOrDefault(Object key, V defaultValue) |
It returns the value to which the specified key is mapped, or defaultValue if the map contains no mapping for the key. |
int hashCode() |
It returns the hash code value for the Map |
boolean isEmpty() |
This method returns true if the map is empty; returns false if it contains at least one key. |
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 replace(K key, V value) |
It replaces the specified value for a specified key. |
boolean replace(K key, V oldValue, V newValue) |
It replaces the old value with the new value for a specified key. |
void replaceAll(BiFunction function) |
It 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. |
Collection
values()
|
It returns a collection view of the values contained in the map. |
int size() |
This method returns the number of entries in the map. |
Map.Entry Interface Entry is the subinterface of Map. So we will be accessed it by Map.Entry name. It returns a collection-view of the map, whose elements are of this class. It provides methods to get key and value. Methods of Map.Entry interface
Method |
Description |
K getKey() |
It is used to obtain a key. |
V getValue() |
It is used to obtain value. |
int hashCode() |
It is used to obtain hashCode. |
V setValue(V value) |
It is used to replace the value corresponding to this entry with the specified value. |
boolean equals(Object o) |
It is used to compare the specified object with the other existing objects. |
static ,V> Comparator<>> comparingByKey() |
It returns a comparator that compare the objects in natural order on key. |
static Comparator<>> comparingByKey(Comparator cmp) |
It returns a comparator that compare the objects by key using the given Comparator. |
static > Comparator<>> comparingByValue() |
It returns a comparator that compare the objects in natural order on value. |
static Comparator<>> comparingByValue(Comparator cmp) |
It returns a comparator that compare the objects by value using the given Comparator. |
Java Map Example: Non-Generic (Old Style)
Output:
1 Amit
2 Jai
5 Rahul
6 Amit
Java Map Example: Generic (New Style)
Output:
102 Rahul
100 Amit
101 Vijay
Java Map Example: comparingByKey()
Output:
100=Amit
101=Vijay
102=Rahul
Java Map Example: comparingByKey() in Descending Order
Output:
102=Rahul
101=Vijay
100=Amit
Java Map Example: comparingByValue()
Output:
100=Amit
102=Rahul
101=Vijay
Java Map Example: comparingByValue() in Descending Order
Output:
101=Vijay
102=Rahul
100=Amit
|