{"id":15488,"date":"2023-04-12T13:33:09","date_gmt":"2023-04-12T13:33:09","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=15488"},"modified":"2023-04-12T13:33:09","modified_gmt":"2023-04-12T13:33:09","slug":"difference-between-hashmap-and-hashtable","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/","title":{"rendered":"Difference between Hashmap and Hashtable"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg\" alt=\"\" \/><\/p>\n<p>In Java, HashMap and Hashtable are two commonly used data structures for storing and retrieving key-value pairs. Both data structures implement the Map interface and provide similar functionality, but there are some important differences between them. In this article, we will explore the difference between HashMap and Hashtable and their implementations in detail.<\/p>\n<h2>HashMap in Java<\/h2>\n<p>HashMap is java.util package class that implements the Map interface. It stores key-value pairs in a hash table, which allows for fast retrieval and insertion of elements. A HashMap does not guarantee the order of its elements and allows null values for both keys and values.<\/p>\n<p>The initial capacity of a HashMap is 16, and its load factor is 0.75 by default. If the number of entries exceeds the product of the load factor and current capacity, the current capacity is increased and all entries are rehashed for uniform distribution.<\/p>\n<p>To learn more, refer to the articles:<\/p>\n<ul>\n<li><a href=\"https:\/\/prepbytes.com\/blog\/java\/hashmap-in-java\/\" title=\"HashMap in Java\">HashMap in Java<\/a><\/li>\n<li><a href=\"https:\/\/prepbytes.com\/blog\/java\/internal-working-of-hashmap\/\" title=\"Internal Working of HashMap in Java\">Internal Working of HashMap in Java<\/a><\/li>\n<\/ul>\n<h2>Hashtable in Java<\/h2>\n<p>Hashtable is also java.util package class that implements the Map interface. It stores key-value pairs in a hash table, which allows for fast retrieval and insertion of elements. A Hashtable does not guarantee the order of its elements and does not allow null values for keys or values.<\/p>\n<p>The initial capacity of a Hashtable is 11, and its load factor is 0.75 by default. When the number of entries exceeds the product of the load factor and current capacity, capacity is increased and entries are rehashed to ensure uniform distribution.<\/p>\n<h2>Difference between HashMap and Hashtable<\/h2>\n<p>Let us now discuss the difference between HashMap and Hashtable.<\/p>\n<ul>\n<li>\n<p><strong>Thread Safety<\/strong><br \/>\nHashtable is thread-safe, which means that multiple threads can access it simultaneously without any issues. On the other hand, HashMap is not thread-safe and can cause problems if accessed by multiple threads at the same time.<\/p>\n<\/li>\n<li>\n<p><strong>Null Values<\/strong><br \/>\nHashtable does not allow null values for keys or values, whereas HashMap allows null values for both keys and values.<\/p>\n<\/li>\n<li>\n<p><strong>Performance<\/strong><br \/>\nHashMap is generally faster than Hashtable because it is not synchronized. However, if thread safety is required, Hashtable can still be faster than a synchronized HashMap.<\/p>\n<\/li>\n<li>\n<p><strong>Iteration Order<\/strong><br \/>\nHashMap does not guarantee the order of its elements, whereas Hashtable iterates through its elements in the order they were inserted.<\/p>\n<\/li>\n<li>\n<p><strong>Initial Capacity<\/strong><br \/>\nHashMap has an initial capacity of 16, whereas Hashtable has an initial capacity of 11.<\/p>\n<\/li>\n<li>\n<p><strong>Load Factor<\/strong><br \/>\nHashMap has a default load factor of 0.75, whereas Hashtable also has a default load factor of 0.75.<\/p>\n<\/li>\n<li>\n<p><strong>Enumeration<\/strong><br \/>\nHashtable uses an Enumeration to iterate through its elements, whereas HashMap uses an Iterator.<\/p>\n<\/li>\n<\/ul>\n<h2>Examples to Demonstrate the Difference between HashMap and Hashtable<\/h2>\n<p>Let us see some Java code to show the difference between HashMap and Hashtable.<\/p>\n<p><strong>Example 1 of the Difference between HashMap and Hashtable<\/strong><br \/>\nThis Java Code shows how null values are handled by HashMap and Hashtable.<\/p>\n<p><strong>Code:<\/strong><\/p>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_15383 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_15383 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_15383 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_15383 .wpsm_nav-tabs > li.active > a, #tab_container_15383 .wpsm_nav-tabs > li.active > a:hover, #tab_container_15383 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_15383 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_15383 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_15383 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_15383 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_15383 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_15383 .wpsm_nav-tabs > li > a:hover , #tab_container_15383 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_15383 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_15383 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_15383 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_15383 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_15383 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_15383 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_15383 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_15383 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_15383 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_15383 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_15383 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_15383\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_15383\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_15383_1\" aria-controls=\"tabs_desc_15383_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_15383\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_15383_1\">\r\n\t\t\t\t\t\t\t\t<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">import java.util.HashMap;\r\nimport java.util.Hashtable;\r\n\r\nclass Main {\r\n\r\n    public static void main(String[] args) {\r\n        HashMap&lt;String, String&gt; hashMap = new HashMap&lt;&gt;();\r\n        Hashtable&lt;String, String&gt; hashTable = new Hashtable&lt;&gt;();\r\n\r\n        hashMap.put(\"key\", null);\r\n        \/\/hashTable.put(null, \"value\"); \/\/ throws NullPointerException\r\n\r\n        System.out.println(\"HashMap: \" + hashMap.get(\"key\"));\r\n        System.out.println(\"Hashtable: \" + hashTable.get(\"key\"));\r\n    }\r\n}\r\n<\/pre>\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_15383 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_15383 a\"),jQuery(\"#tab-content_15383\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t\n<p><strong>Output:<\/strong><\/p>\n<pre><code>HashMap: null\nHashtable: null<\/code><\/pre>\n<p><strong>Explanation:<\/strong><br \/>\nIn this example, we add a null value to both HashMap and Hashtable and then try to retrieve it using the get() method. We can observe that HashMap allows null values, while Hashtable does not. If we try to add a null key or value to Hashtable, it will throw a NullPointerException. In the output, we get \u201cHashMap: null\u201d which means that the value of the key is null. In the next line, we get \u201cHashtable: null\u201d which means that there is no such element present in the hashtable with the name \u201ckey\u201d.<\/p>\n<p><strong>Example 2 of the Difference between HashMap and Hashtable<\/strong><br \/>\nThe following code will demonstrate the difference between HashMap and Hashtable regarding the insertion order.<\/p>\n<p><strong>Code:<\/strong><\/p>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_15384 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_15384 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_15384 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_15384 .wpsm_nav-tabs > li.active > a, #tab_container_15384 .wpsm_nav-tabs > li.active > a:hover, #tab_container_15384 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_15384 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_15384 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_15384 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_15384 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_15384 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_15384 .wpsm_nav-tabs > li > a:hover , #tab_container_15384 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_15384 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_15384 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_15384 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_15384 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_15384 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_15384 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_15384 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_15384 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_15384 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_15384 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_15384 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_15384\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_15384\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_15384_1\" aria-controls=\"tabs_desc_15384_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_15384\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_15384_1\">\r\n\t\t\t\t\t\t\t\t<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">import java.util.*;\r\n\r\nclass PrepBytes{\r\n\r\n    public static void main(String[] args) {\r\n        HashMap&lt;String, String&gt; hashMap = new HashMap&lt;&gt;();\r\n        Hashtable&lt;String, String&gt; hashTable = new Hashtable&lt;&gt;();\r\n\r\n        hashMap.put(\"Arnav\", \"value1\");\r\n        hashMap.put(\"key\", \"value2\");\r\n        hashMap.put(\"key3\", \"value3\");\r\n\r\n        hashTable.put(\"Arnav\", \"value1\");\r\n        hashTable.put(\"key\", \"value2\");\r\n        hashTable.put(\"keys\", \"value3\");\r\n\r\n        System.out.println(\"HashMap entries:\");\r\n        for (Map.Entry&lt;String, String&gt; entry : hashMap.entrySet()) {\r\n            System.out.println(entry.getKey() + \" : \" + entry.getValue());\r\n        }\r\n\r\n        System.out.println(\"Hashtable entries:\");\r\n        for (Map.Entry&lt;String, String&gt; entry : hashTable.entrySet()) {\r\n            System.out.println(entry.getKey() + \" : \" + entry.getValue());\r\n        }\r\n    }\r\n}\r\n<\/pre>\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_15384 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_15384 a\"),jQuery(\"#tab-content_15384\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t\n<p><strong>Output:<\/strong><\/p>\n<pre><code>HashMap entries:\nkey3 : value3\nArnav : value1\nkey : value2\nHashtable entries:\nArnav : value1\nkey : value2\nkeys : value3<\/code><\/pre>\n<p><strong>Explanation:<\/strong><br \/>\nIn this example, we create a HashMap and a Hashtable and add some key-value pairs to them. Then, we iterate over the entries of both data structures using a for-each loop and print the keys and values.<\/p>\n<p>The output shows that the order of entries is not maintained in HashMap, whereas it is maintained in Hashtable. This is because Hashtable is synchronized and uses a locking mechanism to ensure that the entries are added and retrieved in the same order.<\/p>\n<h2>When to use HashMap and Hashtable<\/h2>\n<p>Since Hashtable and HashMap have some significant differences, it&#8217;s important to choose the right one for your application. Here are some suggestions on when to use HashMap and Hashtable.<\/p>\n<p><strong>Use Hashtable when:<\/strong><\/p>\n<ul>\n<li>You need a thread-safe map<\/li>\n<li>You do not need to allow null keys or values<\/li>\n<li>You don\u2019t need to worry about performance<\/li>\n<\/ul>\n<p><strong>Use HashMap when:<\/strong><\/p>\n<ul>\n<li>You do not need a thread-safe map<\/li>\n<li>You need to allow null keys or values<\/li>\n<li>You need better performance than Hashtable<\/li>\n<\/ul>\n<p><strong>Conclusion<\/strong><br \/>\nIn summary, Hashtable and HashMap are two commonly used map implementations in Java. While they share many similarities, they have some important differences that should be considered when choosing one for your application. Hashtable is thread-safe and does not allow null keys or values, but can be slower than HashMap. HashMap is not thread-safe, but allows null keys and values and can be faster than Hashtable. By understanding the differences between these two maps, you can choose the right one for your application and ensure that your code runs smoothly and efficiently.<\/p>\n<h2>Frequently Asked Questions(FAQs)<\/h2>\n<p>Here are some Frequently Asked Questions on the \u201cDifference between Hashmap and Hashtable\u201d.<\/p>\n<p><strong>Ques 1. Can you add null values to a Hashtable or a HashMap in Java?<\/strong><br \/>\n<strong>Ans.<\/strong> You can add null values to a HashMap, but not to a Hashtable. <\/p>\n<p><strong>Ques 2. How does Java handle collisions in hash tables?<\/strong><br \/>\n<strong>Ans.<\/strong> In Java, collisions in hash tables are handled by using a technique called chaining. If two keys hash to the same index in the array, their values are stored in a linked list at that index.<\/p>\n<p><strong>Ques 3. What is the time complexity of hash table operations in Java?<\/strong><br \/>\n<strong>Ans.<\/strong> The time complexity of hash table operations in Java is typically O(1), but can be O(n) in the worst case if there are many collisions.<\/p>\n<p><strong>Ques 4. How do you iterate over the entries in a hash table in Java?<\/strong><br \/>\n<strong>Ans.<\/strong> To iterate over the entries in a hash table in Java, you can use the entrySet() method to get a set of key-value pairs, and then use a for-each loop to iterate over the set.<\/p>\n<p><strong>Ques 5. Can you create a custom hash function in Java?<\/strong><br \/>\n<strong>Ans.<\/strong> Yes, you can create a custom hash function in Java by implementing the hashCode() method on your key object. This method should return an int that represents a hash value for the key.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java, HashMap and Hashtable are two commonly used data structures for storing and retrieving key-value pairs. Both data structures implement the Map interface and provide similar functionality, but there are some important differences between them. In this article, we will explore the difference between HashMap and Hashtable and their implementations in detail. HashMap in [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[135],"tags":[],"class_list":["post-15488","post","type-post","status-publish","format-standard","hentry","category-hashing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Difference between Hashmap and Hashtable<\/title>\n<meta name=\"description\" content=\"Hashtable and HashMap are two commonly used map implementations in Java. Here we discuss the difference between HashMap and Hashtable.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Difference between Hashmap and Hashtable\" \/>\n<meta property=\"og:description\" content=\"Hashtable and HashMap are two commonly used map implementations in Java. Here we discuss the difference between HashMap and Hashtable.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-12T13:33:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Difference between Hashmap and Hashtable\",\"datePublished\":\"2023-04-12T13:33:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/\"},\"wordCount\":1086,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg\",\"articleSection\":[\"Hashing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/\",\"name\":\"Difference between Hashmap and Hashtable\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg\",\"datePublished\":\"2023-04-12T13:33:09+00:00\",\"description\":\"Hashtable and HashMap are two commonly used map implementations in Java. Here we discuss the difference between HashMap and Hashtable.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hashing\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/hashing\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Difference between Hashmap and Hashtable\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Difference between Hashmap and Hashtable","description":"Hashtable and HashMap are two commonly used map implementations in Java. Here we discuss the difference between HashMap and Hashtable.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/","og_locale":"en_US","og_type":"article","og_title":"Difference between Hashmap and Hashtable","og_description":"Hashtable and HashMap are two commonly used map implementations in Java. Here we discuss the difference between HashMap and Hashtable.","og_url":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2023-04-12T13:33:09+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Difference between Hashmap and Hashtable","datePublished":"2023-04-12T13:33:09+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/"},"wordCount":1086,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg","articleSection":["Hashing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/","url":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/","name":"Difference between Hashmap and Hashtable","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg","datePublished":"2023-04-12T13:33:09+00:00","description":"Hashtable and HashMap are two commonly used map implementations in Java. Here we discuss the difference between HashMap and Hashtable.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1681196926617-Difference%20between%20Hashmap%20and%20Hashtable.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/difference-between-hashmap-and-hashtable\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Hashing","item":"https:\/\/prepbytes.com\/blog\/category\/hashing\/"},{"@type":"ListItem","position":3,"name":"Difference between Hashmap and Hashtable"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/15488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=15488"}],"version-history":[{"count":1,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/15488\/revisions"}],"predecessor-version":[{"id":15489,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/15488\/revisions\/15489"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=15488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=15488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=15488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}