Both classes HashMap and Hashtable implement the java.util.map interface, but there are differences in their working methods and usage. The following article will explain the difference between HashMap and Hashtable. I hope it will be helpful to everyone.
HashMap and Hashtable examples in java
Let’s first take a look at HashMap and Hashtable through examples The difference between Hashtable.
HashMap and Hashtable store key/value pairs in hash tables. When using a Hashtable or HashMap, we specify an object to be used as a key, and the value to be linked to that key. The key is then hashed and the resulting hash (hash) code is used as an index into the stored value in the table.
java code:
import java.util.*; import java.lang.*; import java.io.*; /* 只有当类是公共的时,类的名称才必须是“main” */ class Ideone { public static void main(String args[]) { //----------hashtable ------------------------- Hashtable<Integer,String> ht=new Hashtable<Integer,String>(); ht.put(100,"Amit"); ht.put(104,"Amit"); ht.put(101,"Vijay"); ht.put(102,"Rahul"); System.out.println("-------------Hash table--------------"); for (Map.Entry m:ht.entrySet()) { System.out.println(m.getKey()+" "+m.getValue()); } //----------------hashmap-------------------------------- HashMap<Integer,String> hm=new HashMap<Integer,String>(); hm.put(100,"Amit"); hm.put(104,"Amit"); // hashmap 允许重复值 hm.put(101,"Vijay"); hm.put(102,"Rahul"); System.out.println("-----------Hash map-----------"); for (Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+" "+m.getValue()); } } }
Output:
Between HashMap and Hashtable The difference
#1. HashMap is asynchronous and not thread-safe. If there is no correct synchronization code, it cannot be shared between multiple threads; while Hashtable is synchronous and is Thread-safe and can be shared with many threads.
Note: If thread synchronization is not required, HashMap is usually better than Hashtable.
2. HashMap allows one null key and multiple null values, while Hashtable does not allow any null keys or values.
3. Hashmap implements linkedhashmap to maintain the insertion order, and treemap sorts the mapping according to the ascending order of keys. And a hashtable does not guarantee any kind of ordering; it does not maintain mappings in any specific order.
4. HashMap inherits from AbstractMap class, and HashTable inherits from Dictionary class.
5. The default initial capacity of Hashtable is 11, and every time it is expanded, the capacity becomes the original 2n 1; while, the default initial capacity of HashMap is 16, and every time it is expanded, the capacity becomes 2 times the original.
6. Different methods of calculating hash values
7. The iterator of HashMap is a fail-fast mechanism, but the iterator of Hashtable is not a fail-fast mechanism.
Recommended video tutorials: "Java Tutorial"
The above is the entire content of this article, I hope it will be helpful to everyone's learning. For more exciting content, you can pay attention to the relevant tutorial columns of the PHP Chinese website! ! !
The above is the detailed content of What is the difference between HashMap and Hashtable in java. For more information, please follow other related articles on the PHP Chinese website!