Wednesday 25 June 2014

HashSet & HashMap

HashSet:

  • HashSet is implementation of Set Interface and extends AbstractSet class
  • Uses Hash table to store the elements.
  • In Hash set the main thing is that objects which are going to be stored in HashSet must override equals() and hashCode() method so that no duplicate value are stored in our set.
  • Contains unique elements only.
  • HashSet is slower than HashMap.
  • Add method is used to add element in Set. public boolean add(Object o)
  • Example : In the HashSet, there must be no duplicate elements.
       HashSet is a set, e.g. {10,20,30}


HashMap:


  • HashMap is a implementation of Map Interface and extends AbstractMap class, which maps a key to value.
  • It contains only unique elements.
  • It may have one null key and multiple null values.
  • Basically map Interface has two implementation classes HashMap and TreeMap the main difference is TreeMap maintains order of the objects but HashMap will not.
  • HashMap is not synchronized, but collection framework provide methods so that we can make them synchronized if multiple threads are going to access our HashMap and one thread is structurally change our map.
  • HashMap is faster than HashSet because unique key is used to access object.
  • Put method is used to add element in map. public Object put(Object Key,Object value)
  • Example : HashMap there must not be duplicate keys, but it may have duplicate values.
        HashMap is a key -> value (key to value) map, e.g. {a -> 10, b -> 20, c -> 20}


Differences between HashSet and HashMap in Java
HashSet internally uses HashMap to store objects. When add(String) method called it calls HahsMap put(key,value) method where key=String object & value=new Object(Dummy). So it maintain no duplicates because keys are nothing but Value Object. Keys which are used to access/store value objects in HashMap should declared as Final because when it is modified Value object can't be located & returns null.

Why add() Method of HashSet return boolean & put() method of HashMap return values?

HashMap put method: Associates the specified value with the specified key in this map. If the map previously contained a mapping for the key, the old value is replaced.

Return:- the previous value associated with key, or null if there was no mapping for key. (A null return can also indicate that the map previously associated null with key.)



HashSet add method: Adds the specified element to this set if it is not already present. More formally, adds the specified element e to this set if this set contains no element e2 such that (e==null ? e2==null : e.equals(e2)). If this set already contains the element, the call leaves the set unchanged and returns false.

Returns:- true if this set did not already contain the specified element.

No comments:

Post a Comment