What are the differences between a HashMap and a Hashtable in Java?

后端 未结 30 2379
青春惊慌失措
青春惊慌失措 2020-11-21 13:30

What are the differences between a HashMap and a Hashtable in Java?

Which is more efficient for non-threaded applications?

30条回答
  •  [愿得一人]
    2020-11-21 13:48

    Hashtable:

    Hashtable is a data structure that retains values of key-value pair. It doesn’t allow null for both the keys and the values. You will get a NullPointerException if you add null value. It is synchronized. So it comes with its cost. Only one thread can access HashTable at a particular time.

    Example :

    import java.util.Map;
    import java.util.Hashtable;
    
    public class TestClass {
    
        public static void main(String args[ ]) {
        Map states= new Hashtable();
        states.put(1, "INDIA");
        states.put(2, "USA");
    
        states.put(3, null);    //will throw NullPointerEcxeption at runtime
    
        System.out.println(states.get(1));
        System.out.println(states.get(2));
    //  System.out.println(states.get(3));
    
        }
    }
    

    HashMap:

    HashMap is like Hashtable but it also accepts key value pair. It allows null for both the keys and the values. Its performance better is better than HashTable, because it is unsynchronized.

    Example:

    import java.util.HashMap;
    import java.util.Map;
    
    public class TestClass {
    
        public static void main(String args[ ]) {
        Map states = new HashMap();
        states.put(1, "INDIA");
        states.put(2, "USA");
    
        states.put(3, null);    // Okay
        states.put(null,"UK");
    
        System.out.println(states.get(1));
        System.out.println(states.get(2));
        System.out.println(states.get(3));
    
        }
    }
    

提交回复
热议问题