Map interface

In this article, we will discuss Map interface with all its important methods in detail

 

Misconception about Map interface:

Often, Map interface is discussed under the umbrella of Collection framework. But unlike List, Set & Queue interfaces, Map interface doesn’t implements Collection interface

It is discussed, because it also deals with group of item but items are key-value pairs

 

Map interface:

  • Map isn’t sub-interface of Collection interface (i.e.; Map has no relation with Collection interface)
  • To represent a group of key-value pairs as a single unit/entity, which accepts only unique keys and no restriction on values
  • Map allows only unique keys to be inserted but values can be duplicated
  • Here, both keys & values are objects of any type
  • Map interface is used to map the values with the key i.e.; we can retrieve values by querying map with its keys
  • Each key-value pair is known as Entry in Map, where Entry is a inner interface of Map interface (i.e.; Map interface contains Entry interface)
  • So, it is also referred as collection of entry objects
  • It is useful where there is frequent search or delete or update operation on the basis on key
  • Direct implementation classes for Map interface are HashMap, LinkedHashMap, WeakHashMap, IdentityHashMap and another one TreeMap (through SortedMap –> NavigableMap)
  • Map interface contains several methods to perform various operations like add, remove or check & verify
  • Present in java.util package

 

025-map-interace-in-java

Source: Team BenchResources.Net

 

Map interface methods:

Map methods Description
Object put(Object key, Object value); add/put a key-value pair (entry) in the invoking map

if key already present, then returns old value of key

if key isn’t present, then returns null;

void putAll(Map m); add/put all entries from specified map into invoking map
Object get(Object key); returns value corresponding to specified key
Object remove(Object key); removes an key-value pair (entry) from invoking map for the specified key
boolean containsKey(Object key); returns true, if invoking map contains specified key

otherwise returns false

boolean containsValue(Object value); returns true, if invoking map contains specified value

otherwise returns false

boolean isEmpty(); returns true, if invoking map is empty

otherwise returns false

int size(); returns number of key-value pairs (entries) from invoking map
void clear(); removes all key-value pairs from invoking map
Set keySet(); returns set of keys from invoking map

this provides collection/set views of Map

Collection values(); returns collection containing the values of invoking map

this provides collection/set views of Map

Set entrySet(): returns set of map entries of type Map.Entry

this provides collection/set views of Map

 

Below listed classes implements Map interface

  • HashMap
  • LinkedHashMap
  • WeakHashMap
  • IdentityHashMap
  • TreeMap (through SoretdMap –> NavigableMap)

 

Factors to consider while discussing any collection class

We should consider below factors while discussing any implementation class of collection framework or for that matter Map interface,

  • Underlying data structure
  • Duplicates are allowed or Not
  • Insertion order is maintained or Not
  • Whether NULL insertion is possible or Not
  • If possible, how many NULL values can be inserted
  • Whether collection class provide sorting, by default
  • Is there any way to apply customized sorting
  • Performance, while dealing with retrieval or manipulation (addition/deletion)
  • By default, all methods are synchronized or Not

 

References:

https://docs.oracle.com/javase/tutorial/collections/intro/
https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html
https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html
https://docs.oracle.com/javase/7/docs/api/java/util/Map.html
https://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html
https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

 

Happy Coding !!
Happy Learning !!

Entry interface
Comparable v/s Comparator