Map Interface Tutorial in Java Collection
The Map Interface is part of the java collection framework. The Map interface in java collection uses Map as an object to map keys to values. In Map Interface eack key can have 1 value mapped to it and it does not support duplicate key value pair.
The Map Interface is implemented by below given Java Classes:
- HashMap
- TreeMap
- LinkedHashMap
The Map Interface classifieds the methods into below given operations
- Basic Operations : performs operations like put, get, remove, containsKey, containsValue, size, and empty
- Bulk Operations : performs operations like putAll and clear
- Collection Views : performs operations like keySet, entrySet, and values
Maps using JDK8 Aggregate Functions
The Map interface allows the use of aggregate functions from Java 8 (JDK 8) onwards
For instance , grouping student by subject using stream
// Group students by subject Map<Subject, List<Student>> bySubject = students.stream() .collect(Collectors.groupingBy(Student::getSubject));
Another of getting subject and total marks for each student
// Total marks in each subject by student Map<Subject, Integer> bytotalMarks = students.stream() .collect(Collectors.groupingBy(Student::getSubject, Collectors.summingInt(Student::getTotalMarks)));
Methods of Map Interface
Method | Description |
---|---|
V put(Object key, Object value) | allows to insert an entry in the map |
void putAll(Map map) | allows to insert the given map in the map |
V putIfAbsent(K key, V value) | insert the given key and value if key does not exist in map |
V remove(Object key) | removes an entry for the given key |
boolean remove(Object key, Object value) | remove value associated to the key |
Set keySet() | returns the Set view with all keys |
Set<Map.Entry<K,V>> entrySet() | returns the Set view with all keys and values |
void clear() | reset the map |
V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) | allows to compute a mapping for the given key and value |
V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction) | allows to compute key value using the given function if key is null or not assigned yet |
V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) | allows to compute if given key and value exists in map |
boolean containsValue(Object value) | returns true if given value exists in map |
boolean containsKey(Object key) | returns true if given key exists in map |
boolean equals(Object o) | compare the given Object with Map |
void forEach(BiConsumer<? super K,? super V> action) | executes the given action for each entry in the map until throws an exception. |
V get(Object key) | returns object that contains given key value |
V getOrDefault(Object key, V defaultValue) | returns the value to which the specified key is mapped |
int hashCode() | returns Map hash code value |
boolean isEmpty() | returns true if map is empty |
V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) | associates the key with given value when key value is null or not assigned yet |
V replace(K key, V value) | replaces key value |
boolean replace(K key, V oldValue, V newValue) | replace given key’s old value with the new value |
void replaceAll(BiFunction<? super K,? super V,? extends V> function) | allows to replaces each entry’s value with the result of invoking the given function |
Collection values() | returns collection view of map values |
int size() | returns map size |
Map Interface Example in Java Collection
package core.java.planforexams; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class BasicMapExample { public static void main(String[] args) { Map<Integer, String> names = new HashMap<Integer, String>(); names.put(1, "Mohit Sharma"); names.put(2, "Mihika Sharma"); names.put(3, "Usha Sharma"); System.out.println(" Names Map Size is :::" + names.size()); // Convert Map to Set to enable traversing Set nameSet = names.entrySet(); Iterator itr= nameSet.iterator(); while(itr.hasNext()){ // Convert back to Map for retrieving Key and Value Map.Entry nameEntry= (Map.Entry) itr.next(); System.out.println(nameEntry.getKey() + " " + nameEntry.getValue()); } } } Output: Names Map Size is :::3 1 Mohit Sharma 2 Mihika Sharma 3 Usha Sharma
Leave a Reply