A Map is an object that maps keys to values. It is not an extension of the collection interface rather it has own interface hierarchy.
Introduction to Map and SortedMap Interface
Map Interface:
A Map
is an object that maps keys to
values. It is not an extension of the collection interface rather it has own
interface hierarchy. Map provides a more general
way for storing elements without containing duplicate keys.
It allows you to store pairs of elements, termed "keys" and
"values", where each key maps to one value. Thus the
keys in a map must be unique.
The Map interface methods can be broken down into three sets of operations:
Altering: The alteration operations allow you to
add and remove key-value pairs from the map. Both the key and value can be null
.
Querying: The query operations allow the user to
retrieve key/value pairs from the Map.
Providing alternative views: This method allow you to work with the different
views which can be used to analyze Map key/value Objects.
Map Methods Returning
Views:
These methods return objects
which allow you to traverse the elements of the Map, and also delete elements
from the Map.
Method |
Uses |
entrySet() |
Returns a Set view of the mappings contained in the map. Each element in the set is a Map.Entry object which can have it's key and value elements accessed with getKey() and getValue() methods (also has a setValue() method) |
keySet() | Returns a Set view of the keys contained in the map. Removing elements from the Set will also remove the corresponding mapping (key and value) from the Map |
values() | Returns a Collection view of the values contained in the map. Removing elements from the Collection will also remove the corresponding mapping (key and value) from the Map |
Map.Entry Interface:
Each element is a map has a key and value. Each key-value
pair is saved in a java.util.Map.Entry object. A set of these map entries
can be obtained by calling a map's entrySet( )
method. Iterating over a map is done by iterating over this set.
The Collections Framework provides three general-purpose Map implementation:
HashMap
TreeMap
LinkedHashMap
HashMap:
The HashMap is a class which is used to perform some basic operations
such as inserting, deleting, and locating elements in a Map
. The java.util.
HashMap class is
implemented with and roughly equivalent to a Hashtable except that
it is unsynchronized and permits null. It works with the Iterators requires
a well-defined implementation of the method hashCode( ).
TreeMap:
The TreeMap implementation is useful when you need to traverse the
keys from
a collection in a sorted manner. The elements added to a TreeMap must be sortable in
order to work properly. It is depend upon the size of the specified collection,
it may be faster to add elements to a HashMap , then convert the map to a
TreeMap for traversing the sorted keys.
LinkedHashMap:
A LinkedHashMap is implemented using both Hash
table and linked list implementation of the Map interface. This
implementation differs from HashMap that maintains a doubly-linked list
running through all of its entries in it. The orders of its elements are based on the order in which they were inserted into the set (insertion-order).
The list of methods supported by Map interface are shown in the table given below:
Method |
Uses |
put(Object key, Object value) |
Associates the specified value with the specified key in the map. |
clear( ) |
Removes all mappings from the map |
putAll(Map t) |
Copies all of the mappings from the specified map to the map. |
isEmpty( ) |
Returns true if this map contains no key-value mappings. |
iterator( ) |
Returns an Iterator object for the collection which may be used to retrieve an object. |
remove(Object key) |
Removes the mapping for this key from this map if it is present. 0 |
keySet( ) | Returns a set view of the keys contained in this map. |
entrySet( ) | Returns a set view of the mappings contained in this map. |
values( ) | Returns a collection view of the values contained in this map. |
size( ) |
Returns the number of key-value mappings in this map. |
SortedMap Interface: 1
The Collection Framework provides a special Map interface for maintaining elements in a sorted order called SortedMap . The SortedMap interface extends the Map interface which maintains its elements in ascending order. Working with a SortedMap is just similar to a SortedSet except, the sort is done on the map keys. In addition to methods of the Map interface, it provides two methods shown as:
firstKey( )
lastKey( )
The firstKey( ) method returns the first (lowest) value currently in the map while the lastKey( ) method returns the last (highest) value currently in the map. 2
Let see an example implementing the HashMap and TreeMapclass.
import java.util.*; public class MapDemo { public static void main(String args[]) { String days[]={"Sunday", "Monday", "Tuesday", "Wednesnday", "Thursday", "Friday", "Saturday"}; Mapmap = new HashMap (); try{ for(int i=0; i<7; i++){ map.put(i, days[i]); } TreeMap tMap=new TreeMap (map); //Rerieving all keys System.out.println("Keys of tree map: " + tMap.keySet()); //Rerieving all values System.out.println("Values of tree map: " + tMap.values()); //Rerieving the First key and its value System.out.println("First key: " + tMap.firstKey() + " Value: " + tMap.get(tMap.firstKey()) + "\n"); //Removing the first key and value System.out.println("Removing first data: " + tMap.remove(tMap.firstKey())); System.out.println("Now the tree map Keys: " + tMap.keySet()); System.out.println("Now the tree map contain: " + tMap.values() + "\n"); //Rerieving the Last key and value System.out.println("Last key: " + tMap.lastKey() + " Value: " + tMap.get(tMap.lastKey()) + "\n"); //Removing the last key and value System.out.println("Removing last data: " + tMap.remove(tMap.lastKey())); System.out.println("Now the tree map Keys: " + tMap.keySet()); System.out.println("Now the tree map contain: " + tMap.values()); } catch(Exception e){} } }
Output of this program:
C:\nisha>javac MapDemo.java C:\nisha>java MapDemo Keys of tree map: [0, 1, 2, 3, 4, 5, 6] Values of tree map: [Sunday, Monday, Tuesday, Wednesnday, Thursday, Friday, Saturday] First key: 0 Value: Sunday Removing first data: Sunday Now the tree map Keys: [1, 2, 3, 4, 5, 6] Now the tree map contain: [Monday, Tuesday, Wednesnday, Thursday, Friday, Saturday] Last key: 6 Value: Saturday Removing last data: Saturday Now the tree map Keys: [1, 2, 3, 4, 5] Now the tree map contain: [Monday, Tuesday, Wednesnday, Thursday, Friday] C:\nisha> |
The given program stores the values mapping with their keys to the map. The keySet( ) method retrieves all keys from the map and the values( ) method retrieves all the values added to a map. The remove( ) method removes the key from the map with its value specified in it. 3