Popular Posts

May 28, 2012

HASHMAP VS HASHTABLE VS HASHSET

I wanted to know the different between hashtable and hashmap. And search from Google i  found another thing, that is hashset.
Here is the some basic diffences between them.


Hashtable:
Hashtable is basically a datastructure to retain values of key-value pair.

-> It didn't allow null for both key and value. You will get NullPointerException if you add null value.
-> It is synchronized. So it comes with its cost. Only one thread can access in one time.

Hashtable<Integer, String> cityTable = new HashTable<Integer,String>();
cityTable.put(1, "Dhaka");
cityTable.put(2, "Manikgonj");
cityTable.put(3, null); /* NullPointerException at runtime */

System.out.println(cityTable.get(1));
System.out.println(cityTable.get(2));
System.out.println(cityTable.get(3));

HashMap:
Like HashTable it also accepts key value pair.
->  It allows null for both key and value
->  It is unsynchronized. So come up with better performance

HashMap<Integer,String> productMap = new HashMap<Integer,String>();
productMap.put(1, "Keys");
productMap.put(2, null);



HashSet:
HashSet does not allow duplicate values.
-> It provides add method rather put method.
-> You also use its contain method to check whether the object is already available in HashSet.
HashSet can be used where you want to maintain a unique list.

HashSet<String> stateSet = new HashSet<String>();
stateSet.add ("CA");
stateSet.add ("WI");
stateSet.add ("NY");

if (stateSet.contains("PB")) /* if CA, it will not add but shows following message*/
     System.out.println("Already found");
else
    stateSet.add("PB");

2 comments: