Hashset Linkedhashset Treeset difference
Hashset Vs Linkedhashset Vs Treeset:
HashSet, LinkedHashSet, TreeSet:
A set is a collection that does not allow duplicates. So HashSet, LinkedHashSet and TreeSets are does not allow the duplicate elements.
HashSet:
Element order will not be guaranteed.
LinkedHashSet:
Elements are ordered as same like the insertion order.
TreeSet:
Elements are naturally ordered.
It does not allow null.
HashSet, TreeSet and LinkedHashSet Example program:
[java]
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
public class SetTypes {
public static void main(String[] args) {
Set<String> myHashSet = new HashSet<String>();
Set<String> myTreeSet = new TreeSet<String>();
Set<String> myLinkedHashSet = new LinkedHashSet<String>();
myHashSet.add("Jan");
myHashSet.add("Feb");
myHashSet.add("Mar");
myHashSet.add("Apr");
myHashSet.add("Feb");
myTreeSet.add("Jan");
myTreeSet.add("Feb");
myTreeSet.add("Mar");
myTreeSet.add("Apr");
myTreeSet.add("Jan");
myLinkedHashSet.add("Jan");
myLinkedHashSet.add("Feb");
myLinkedHashSet.add("Mar");
myLinkedHashSet.add("Apr");
myLinkedHashSet.add("Jan");
Iterator hashSetIterator = myHashSet.iterator();
while(hashSetIterator.hasNext()){
// No guarantee for ordering.
System.out.println("Hashset is"+hashSetIterator.next());
}
Iterator treeSetIterator = myTreeSet.iterator();
while(treeSetIterator.hasNext()){
//Natural Ordered elemetns
System.out.println("Treeset is"+treeSetIterator.next());
}
Iterator linkedHashSetIterator = myLinkedHashSet.iterator();
while(linkedHashSetIterator.hasNext()){
//Ordered elements as we have inserted
System.out.println("Linkedset is"+linkedHashSetIterator.next());
}
}
}
[/java]
Output:
Hashset isFeb
Hashset isMar
Hashset isApr
Hashset isJan
Treeset isApr
Treeset isFeb
Treeset isJan
Treeset isMar
Linkedset isJan
Linkedset isFeb
Linkedset isMar
Linkedset isApr
Another Example program:
[java]
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;
public class HashSetvsVsLinkedHashSetVsTreeSet {
public static void main(String[] args) {
Set<String> myHashSet = new HashSet<String>();
myHashSet.add("Chennai");
myHashSet.add("Bangalore");
myHashSet.add("Chennai");
myHashSet.add("Mumbai");
myHashSet.add("Delhi");
Iterator iterHashSet = myHashSet.iterator();
System.out.println("\n HashSet values:\n");
while(iterHashSet.hasNext()){
System.out.println(iterHashSet.next());
}
Set<String> myTreeSet = new TreeSet<String>();
myTreeSet.add("Chennai");
myTreeSet.add("Bangalore");
myTreeSet.add("Chennai");
myTreeSet.add("Mumbai");
myTreeSet.add("Delhi");
Iterator iterTreeSet = myTreeSet.iterator();
System.out.println("\n TreeSet values:\n");
while(iterTreeSet.hasNext()){
System.out.println(iterTreeSet.next());
}
Set<String> myLinkedHashSet = new LinkedHashSet<String>();
myLinkedHashSet.add("Chennai");
myLinkedHashSet.add("Bangalore");
myLinkedHashSet.add("Chennai");
myLinkedHashSet.add("Mumbai");
myLinkedHashSet.add("Delhi");
System.out.println("\n LinkedHashSet values:\n");
Iterator iterLinkedHashSet = myLinkedHashSet.iterator();
while(iterLinkedHashSet.hasNext()){
System.out.println(iterLinkedHashSet.next());
}
}
}
[/java]
Output:
HashSet values:
Mumbai
Bangalore
Chennai
Delhi
TreeSet values:
Bangalore
Chennai
Delhi
Mumbai
LinkedHashSet values:
Chennai
Bangalore
Mumbai
Delhi