Original Source: http://java.sun.com/developer/JDCTechTips/2002/tt1105.html
This SetDemo1 program creates an instance of each kind of set, and adds the squares of the values from 10 to 1 to the set. It wraps each integer value in an Integer object.
When you run the program, the result is:
HashSet = [9, 25, 4, 36, 100, 1, 49, 81, 16, 64] LinkedHashSet = [100, 81, 64, 49, 36, 25, 16, 9, 4, 1] TreeSet = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]The results illustrate that elements in a HashSet are retrieved (iteration ordering) in apparent random order. The elements of a LinkedHashSet are retrieved in the order that they are inserted into the set. The elements of a TreeSet are retrieved in ascending sorted order.
HashSet is a good choice for representing sets if you don't care about element ordering. But if ordering is important, then LinkedHashSet or TreeSet are better choices. However, LinkedHashSet or TreeSet come with an additional speed and space cost.
import java.util.*;
public class SetDemo1 {
static final int MIN = 1;
static final int MAX = 10;
public static void main(String args[]) {
Set sethash = new HashSet();
for (int i = MAX; i >= MIN; i--) {
sethash.add(new Integer(i*i));
}
System.out.println("HashSet = " + sethash);
Set setlink = new LinkedHashSet();
for (int i = MAX; i >= MIN; i--) {
setlink.add(new Integer(i*i));
}
System.out.println("LinkedHashSet = " + setlink);
Set settree = new TreeSet();
for (int i = MAX; i >= MIN; i--) {
settree.add(new Integer(i*i));
}
System.out.println("TreeSet = " + settree);
}
}
This SetDemo1 program creates an instance of each kind of set, and adds the squares of the values from 10 to 1 to the set. It wraps each integer value in an Integer object.
When you run the program, the result is:
HashSet = [9, 25, 4, 36, 100, 1, 49, 81, 16, 64] LinkedHashSet = [100, 81, 64, 49, 36, 25, 16, 9, 4, 1] TreeSet = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]The results illustrate that elements in a HashSet are retrieved (iteration ordering) in apparent random order. The elements of a LinkedHashSet are retrieved in the order that they are inserted into the set. The elements of a TreeSet are retrieved in ascending sorted order.
HashSet is a good choice for representing sets if you don't care about element ordering. But if ordering is important, then LinkedHashSet or TreeSet are better choices. However, LinkedHashSet or TreeSet come with an additional speed and space cost.