Difference Between HashMap and TreeMap

In programming, there are various mechanisms to collect data. Collections is one method to store data. Programming languages such as Java use Collections. It is a framework with classes and interfaces for storing and manipulating a set of data elements. In a normal array, there is a fixed number of elements to store. That is a limitation of arrays. Instead, the programmer can use collections. Operations such as inserting, deleting, sorting and searching can be performed using collections. In Java, the Map interface belongs to collections. The map is used to represent data in the key, value pairs. There are only unique keys, and each has a corresponding value. HashMap and TreeMap are classes that implement the Map interface. A HashMap is a Map based collection class that is used for storing key and value pairs that do not maintain a specific order in data elements. A TreeMap is a Map based collection class that is used for storing key and value pairs that maintain the ascending order of data elements. The key difference between HashMap and TreeMap is that HashMap does not maintain a specific order in data elements while TreeMap maintains the ascending order of data elements.

CONTENTS

1. Overview and Key Difference
2. What is HashMap
3. What is TreeMap
4. Similarities Between HashMap and TreeMap
5. Side by Side Comparison – HashMap vs TreeMap in Tabular Form
6. Summary

What is HashMap?

HashMap is a class that implements the map interface. It extends the AbstractMap class and implements Map interface. A HashMap contains the key, value pairs. Each element is unique. It is easy to find the elements in HashMap using the key. Declaring a HashMap is as follows.

public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable

The K refers the key while V refers to the value corresponding to that specific key. Each key, value pair is an entry of the HashMap.

Figure 01: Map Interface

Assume a scenario as follows to understand the HaspMap. If there the programmer wants to store a set of student names and corresponding index numbers, he can use the HashMap. The student names are used to find the index numbers. Therefore, student names are the keys while index numbers are the values.

Figure 02: HashMap Program Using Java

According to the above program, an object of HashMap is created. Then the programmer can add elements using that object. Values can be inserted using the put method. To fetch the values, the programmer should use the get method with the key. When using studentList.get(“150”); it will print the corresponding name to that index which is Ann. If the programmer wants to get all values, then he can use Map.Entry to print all keys and values. When observing the output, it can be seen that HashMap does not maintain a specific order. It does not print the elements in the inserted order. The elements are printed in a random order.

What is TreeMap?

The TreeMap is a class in Java that implements the Map interface. Similar to a HashMap, it also used for storing key, value pairs but in ascending order. The TreeMap implements the NavigableMap and NavigableMap extends SortedMap and SortedMap extends Map. Each element is unique. Declaring a TreeMap is as follows.

public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, Serializable

The K refers the key while V refers to the value corresponding to that specific key. Each key, value pair is an entry of the TreeMap.

Figure 03: TreeMap Program using Java

According to the above program, an object of TreeMap is created. Then the programmer can add elements using that object. Values can be inserted using the put method. To fetch the values, the programmer should use the get method with the key. When using studentList.get(“150”); it will print the corresponding name to that index which is Ann. If the programmer wants to get all values, then he can use Map.Entry to print all keys and values. When observing the output, it can be seen that TreeMap maintains a specific order. The elements are printed in ascending order.

What are the Similarities Between HashMap and TreeMap?

  • Both HashMap and TreeMap implements Map interface.
  • Both HashMap and TreeMap can store and manipulate many elements.
  • Both HashMap and TreeMap contains key, value pairs.
  • Both HashMap and TreeMap can have many null values.
  • There is no limitation to the number of elements that can be stored in both HashMap and TreeMap.

What is the Difference Between HashMap and TreeMap?

HashMap vs TreeMap

A HashMap is a Map based collection class that is used for storing key and value pairs which do not maintain a specific order in data elements. A TreeMap is a Map based collection class that is used for storing key and value pairs which maintains the ascending order of data elements.
 Order
The HashMap does not maintain the order. The TreeMap maintains the ascending order.
Null Key
The HashMap can contain one null key. The TreeMap cannot have a null key.
 Performance
HashMap is faster than TreeMap. TreeMap is slower than HashMap.

Summary – HashMap vs TreeMap 

Programming languages such as Java contains the collection framework. In arrays, there can be a fixed number of elements. Therefore, the array size should be initialized at the beginning. In collections, the programmer can store many elements as required. There is no specific amount to store. The map is an interface belongs to collection framework. A HashMap is a Map based collection class that is used for storing key and value pairs which do not maintain a specific order in data elements. A TreeMap is a Map based collection class that is used for storing key and value pairs which maintains the ascending order of data elements. This article discussed the difference between HashMap and TreeMap which implements the Map interface. The difference between HashMap and TreeMap is that HashMap does not maintain a specific order in data elements while TreeMap maintains the ascending order of data elements.

Reference:

1.“HashMap in Java – javatpoint.” The Point, Available here
2.“TreeMap in Java – javatpoint.”  The Point, Available here

Image Courtesy:

1.’Java.util.Map hierarchy’By ramlmn – Own work, (CC BY-SA 4.0) via Commons Wikimedia