In the collection framework, a map contains values on the basis of key and value pairs. This pair is known as an entry.
Points to Remember
- Map contains unique keys.
- Map allows duplicate values.
- Map is useful to search, update or delete elements on the basis of a key.
- Map is the root interface in the Map hierarchy for Collection Framework.
- Map interface is extended by SortedMap and implemented by HashMap, LinkedHashMap.
- Map implementation classes HashMap and LinkedHashMap allow null keys and values but TreeMap doesn’t allow null key and value.
- Map can’t be traversed, for transversing needs to convert into the set using method keySet() or entrySet().
See Also:
- Java: HashMap Class methods and Examples
- Java: HashMap Working
- Java: HashTable Class methods and Examples
- Java: HashTable Vs HashMap
- Java: LinkedHashMap Class methods and Examples
- Java: TreeMap Class methods and Examples
Methods of Map Interface
Method | Description |
put(Object key, Object value) | This method used to insert an entry on the map. |
void putAll(Map map) | This method inserts the specified map in the map. |
V putIfAbsent(K key, V value) | This method inserts the specified value with the specified key in the map only if it is not already specified. |
V remove(Object key) | This method used to delete an entry for the specified key. |
boolean remove(Object key, Object value) | This method removes the specified values with the associated specified keys from the map. |
Set keySet() | It returns the Set view containing all the keys. |
Set<Map.Entry> 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) | This method computes 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) | This method computes 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) | This method computes 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) | if some value equal to the value exists within the map then return true, else return false. |
boolean containsKey(Object key) | if some key equal to the key exists within the map return true, else return false. |
boolean equals(Object o) | It is used to compare the specified Object values with the Map. |
void forEach(BiConsumer action) | Mentioned action will perform for each entry in the map until all entries have been processed or the action throws an exception. |
V get(Object key) | Returns the object that contains the value with respect to the key. |
V getOrDefault(Object key, V defaultValue) | Returns the value with respect to 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() | Check if the map not having any element Returns true if the map is empty or false. |
V merge(K key, V value, BiFunction remappingFunction) | If the given key is not mapped with a value or with null, associates it with the given non-null value. |
V replace(K key, V value) | It replaces the specified value with respect to the key. |
boolean replace(K key, V oldValue, V newValue) | It replaces the old value with the new value with respect to the key. |
void replaceAll(BiFunction function) | It replaces each entry’s value with the given function on that entry until all entries have been processed or the function throws an exception. |
Collection values() | It returns a collection of the values contained in the map. |
int size() | Returns the number of elements in the map. |
Map.Entry Interface
Entry is the subinterface of Map. So we will be accessed 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<Map.Entry> | comparingByKey() It returns a comparator that compare the objects in natural order on key. |
static Comparator<Map.Entry> comparingByKey(Comparator cmp) | It returns a comparator that compare the objects by key using the given Comparator. |
static <K,V extends Comparable> Comparator<Map.Entry> comparingByValue() | It returns a comparator that compare the objects in natural order on value. |
static Comparator<Map.Entry> comparingByValue(Comparator cmp) | It returns a comparator that compare the objects by value using the given Comparator. |
Map Example: Legacy Style without Generics
import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,"Anuj"); map.put(5,"Raghav"); map.put(2,"Jitendra"); map.put(3,"Anuj"); //Traversing Map Entry //Converting to Set so that we can traverse Set set=map.entrySet(); Iterator itr=set.iterator(); while(itr.hasNext()){ //Type cast to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+" "+entry.getValue()); } } }
Output :
1 Anuj
2 Jitendra
5 Raghav
3 Anuj
Map Example: With Generics
import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(20,"Anuj"); map.put(21,"Virendra"); map.put(22,"Raghav"); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+" "+m.getValue()); } } }
Output :
22 Raghav
20 Anuj
21 Virendra
Map Example: comparingByKey() in ascending and descending order
import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(20,"Anuj"); map.put(21,"Virendra"); map.put(22,"Raghav"); //ascending order //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); //descending oder //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
Output :
20=Anuj
21=Virendra
22=Raghav
Map Example: comparingByValue() in ascending and descending Order
import java.uti class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(20,"Anuj"); map.put(21,"Virendra"); map.put(22,"Raghav"); //ascending order //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); //descending order //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
Output :
20=Anuj
22=Raghav
21=Virendra
21=Virendra
22=Raghav
20=Anuj
You must log in to post a comment.