AbstractMap in Java - GeeksforGeeks

15 Oct, 2020
The AbstractMap class is a part of the Java Collection Framework. It directly implements the Map interface to provide a structure to it, by doing so it makes the further implementations easier. As the name suggests AbstractMap is an abstract class by definition, therefore it cannot be used to create objects. The concrete classes that inherit from AbstractMap can be used to create objects.
Declaration:
public abstract class AbstractMap<K,V> extends Object, implements Map<K,V>
Here, K is the key type and V is the value type.
This class implements Map<K, V> interface and extends Object class.
Constructor
Definition
1. Adding Elements
To add elements to an AbstractMap we use the put() method. Note that the method is not actually of type AbstractMap but of an extending class, the reference to this object is of type AbstractMap. The entries of the map are of type key, value pair. Here the key is of type Integer and the value id of type String, this is mentioned at the time of instantiation of the object.
Java
// Java Program to demonstrate adding// elements to the AbstractMap  import java.util.*;  public class AddElements {      public static void main(String[] args)    {        // Since AbstractMap is an abstract class        // create object using HashMap        AbstractMap<Integer, String> absMap            = new HashMap<Integer, String>();          // Adding values to the AbstractMap        // Note that we do not create an object of        // AbstractMap        absMap.put(1, "This");        absMap.put(2, "is");        absMap.put(3, "an");        absMap.put(4, "AbstractMap");          // Displaying the mappings using        // entrySet() to get the set view        System.out.println("The Set view of the mappings:");        System.out.println(absMap.entrySet());    }}
The Set view of the mappings:
[1=This, 2=is, 3=an, 4=AbstractMap]
2. Removing Elements
We can remove mappings from an AbstractMap using the remove() method. The syntax of remove is 
mapName.remove(Object key);
This will remove the value mapped to the specified key. We can clear the entire AbstractMap using the clear() method as shown below.
Java
// Java Program to demonstrate removing// elements from the AbstractMap  import java.util.*;  public class RemoveElements {      public static void main(String[] args)    {        // Since AbstractMap is an abstract class        // create object using HashMap        AbstractMap<Integer, String> absMap            = new HashMap<Integer, String>();          absMap.put(1, "This");        absMap.put(2, "is");        absMap.put(3, "an");        absMap.put(4, "AbstractMap");          // Displaying the mappings        System.out.println("Mappings of the AbstractMap:");        System.out.println(absMap);          // Removing an entry using the remove() method        absMap.remove(1);          // Displaying the mappings        System.out.println("Mappings of the AbstractMap:");        System.out.println(absMap);          // Clearing the whole map using clear()        absMap.clear();          // Displaying the mappings        System.out.println("\nThe Set view of the mappings:");        System.out.println(absMap);    }}
Mappings of the AbstractMap:
{1=This, 2=is, 3=an, 4=AbstractMap}
Mappings of the AbstractMap:
{2=is, 3=an, 4=AbstractMap}

The Set view of the mappings:
{}
3. Replacing entries
We can replace values associated with a key using the replace() method as shown below.
Java
// Java Program to demonstrate replacing// elements of AbstractMap  import java.util.AbstractMap;import java.util.HashMap;  public class ReplaceElements {      public static void main(String[] args)    {          // Since AbstractMap is an abstract class        // create object using HashMap        AbstractMap<Integer, String> absMap            = new HashMap<Integer, String>();          // Adding values to the AbstractMap        // Note that we do not create an object of        // AbstractMap        absMap.put(1, "This");        absMap.put(2, "is");        absMap.put(3, "a");        absMap.put(4, "AbstractMap");          // Displaying the mappings        System.out.println("Mappings of the AbstractMap:");        System.out.println(absMap);          // Replacing the mapping associated to 3        absMap.replace(3, "an");          // Displaying the mappings        System.out.println("\nMappings of the AbstractMap:");        System.out.println(absMap);    }}
Mappings of the AbstractMap:
{1=This, 2=is, 3=a, 4=AbstractMap}

Mappings of the AbstractMap:
{1=This, 2=is, 3=an, 4=AbstractMap}
4. Traversing
There are different ways to traverse through an AbstractMap, we discuss two ways in the code given below. The first method is to use entrySet() method, which returns a collection view of the map. This view can be iterated through using a for each loop. The method getKey() return the key and getValue() return the associated value. The second method is by using the Iterator interface. We create an iterator over the key set using the keySet() method. This iterator is used to iterate over the map using the next() method, which returns the next entry in the map.
Java
// Java Program to demonstrate// traversing AbstractMap  import java.util.*;  public class Traversing {      public static void main(String[] args)    {        // Since AbstractMap is an abstract class        // create object using HashMap        AbstractMap<Integer, String> absMap            = new HashMap<Integer, String>();          // Adding values to the AbstractMap        // Note that we do not create an object of        // AbstractMap        absMap.put(1, "This");        absMap.put(2, "is");        absMap.put(3, "a");        absMap.put(4, "AbstractMap");          // METHOD 1        // Iterate over the map using entrySet()        // which returns a collection view of the map          System.out.println("Using the entrySet() method");          for (AbstractMap.Entry<Integer, String> entry :             absMap.entrySet()) {            System.out.println("Key = " + entry.getKey()                               + ", Value = "                               + entry.getValue());        }          // METHOD 2        // Iterate over the map using the Iterator interface          System.out.println(            "\nUsing the Iterator interface");          Iterator<Integer> itr = absMap.keySet().iterator();        while (itr.hasNext()) {            int key = itr.next();            System.out.println("Key = " + key                               + ", Value =  "                               + absMap.get(key));        }    }}
Using the entrySet() method
Key = 1, Value = This
Key = 2, Value = is
Key = 3, Value = a
Key = 4, Value = AbstractMap

Using the Iterator interface
Key = 1, Value =  This
Key = 2, Value =  is
Key = 3, Value =  a
Key = 4, Value =  AbstractMap
The HashMap class is the basic implementation of the Map interface, which stores the key-value pairs. The HashMap is a basic Map implementation of the Hashtable but HashMap is unsychronised. The order of elements of a HashMap is undefined. The HashMap provides constant time performance for basic operations of insertion, deletion, traversal and manipulation.
Syntax:
HashMap< ? , ? > hmName = new HashMap< ? , ? >();
The IdentityHashMap is the Hashtable implementation of a Map, but it uses reference equality instead of object equality. Which means that IdentityHashMap violates the basic rule of maps, therefore it is not a general-purpose map, it is reserved for rare scenarios. In an IdentityHashMap any two objects, o1 and o2, are equal if and only if o1==o2 i.e. the reference of o1 and o2 are the same.
Syntax:
IdentityHashMap< ? , ? > ihmName = new IdentityHashMap< ? , ? >();
The WeakHashMap is a Hashtable implementation of the Map interface that uses weak keys. When a key in a WeakHashMap is no longer in ordinary use it will be automatically discarded. It means that the existence of a mapping will not prevent the key from being garbage collected. The WeakHashMap is an unsynchronised class.
Syntax:
WeakHashMap< ? , ? > whmName = new WeakHashMap< ? , ? >();
The TreeMap class is a Red-Black tree based implementation of the NavigableMap. The TreeMap elements are sorted either by the natural order or by the Comparator provided at the time of construction.
Syntax:
TreeMap< ? , ? > tmName = new TreeMap< ? , ? >();
The EnumMap is a specialized implementation of the Map interface. The keys of the EnumMap are of type enum. All the keys must be of the same enum, either defined explicitly or implicitly, specified at the time of construction. The EnumMap is internally represented as an array, it is very compact and efficient.
Syntax:
EnumMap< enumName, ? > emName = new EnumMap< enumName, ? >();
The ConcurrentHashMap is a Hashtable implementation that supports full concurrency through retrieve and update operations. This class is highly compatible with the Hashtable class and contains all corresponding methods of a Hashtable. Although the operations are thread-safe there is no locking mechanism in place, therefore retrieval can overlap updation. Therefore, retrieval operations reflect the most recently completed update operations.
Syntax:
ConcurrentHashMap< ? , ? > chmName = new ConcurrentHashMap< ? , ? >();
The ConcurrentSkipListMap is a scalable implementation of the ConcurrentNavigableMap interface. The keys in ConcurrentSkipListMap are sorted by natural order or by using a Comparator at the time of construction of the object. The ConcurrentSkipListMap has the expected time cost of log n for insertion, deletion and searching operations. It is a thread-safe class, therefore, all basic operations can be accomplished concurrently.
Syntax:
ConcurrentSkipListMap< ? , ? > cslmName = new ConcurrentSkipListMap< ? , ? >();
METHOD
DESCRIPTION
METHOD
DESCRIPTION
 
Java-AbstractMap
Java-Collections
Java
Java
Java-Collections
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Functional Interfaces in Java
Stream In Java
Constructors in Java
Different ways of Reading a text file in Java
Exceptions in Java
Generics in Java
Comparator Interface in Java with Examples
Strings in Java
Difference between Abstract Class and Interface in Java
How to remove an element from ArrayList in Java?