Expand|Select|Wrap|Line Numbers
- import java.util.*;
- public class SetListPerformanceTest {
- static final int N = 50000;
- public static void main(String[] args) {
- // Add numbers 0, 1, 2, ... N-1 to the array list
- List<Integer> list = new ArrayList<Integer>();
- for (int i = 0; i < N; i++)
- list.add(i);
- Collections.shuffle(list); // shuffle the array list
- // Create a hash set,and test its performance
- Collection<Integer> set1 = new HashSet<Integer>(list);
- System.out.println("Member test time for hash set is " +
- getTestTime(set1) + " milliseconds");
- System.out.println("Remove element time for hash set is " +
- getRemoveTime(set1) + " milliseconds");
- // Create a linked hash set,and test its performance
- Collection<Integer> set2 = new LinkedHashSet<Integer>(list);
- System.out.println("Member test time for linked hash set is " +
- getTestTime(set2) + " milliseconds");
- System.out.println("Remove element time for linked hash set is " +
- getRemoveTime(set2) + " milliseconds");
- // Create a tree set,and test its performance
- Collection<Integer> set3 = new TreeSet<Integer>(list);
- System.out.println("Member test time for tree set is " +
- getTestTime(set3) + " milliseconds");
- System.out.println("Remove element time for tree set is " +
- getRemoveTime(set3) + " milliseconds");
- // Create a array list,and test its performance
- Collection<Integer> list1 = new HashSet<Integer>(list);
- System.out.println("Member test time for array list is " +
- getTestTime(list1) + " milliseconds");
- System.out.println("Remove element time for array list is " +
- getRemoveTime(list1) + " milliseconds");
- // Create a linked list,and test its performance
- Collection<Integer> list2 = new HashSet<Integer>(list);
- System.out.println("Member test time for linked list is " +
- getTestTime(list2) + " milliseconds");
- System.out.println("Remove element time for linked list is " +
- getRemoveTime(list2) + " milliseconds");
- }// END OF MAIN METHOD
- public static long getTestTime(Collection<Integer> c) {
- long startTime = System.currentTimeMillis();
- // Test if a number is in the collection
- for (int i = 0; i < N; i++)
- c.contains((int)(Math.random() * 2 * N));
- return System.currentTimeMillis() - startTime;
- }// END OF GET TEST TIME METHOD
- public static long getRemoveTime(Collection<Integer> c) {
- long startTime = System.currentTimeMillis();
- for (int i = 0; i < N; i++)
- c.remove(i);
- return System.currentTimeMillis() - startTime;
- }// END OF GET REMOVE TIME METHOD
- }// END OF SET LIST PERFORMANCE TEST CLASS
Member test time for hash set is 13 milliseconds >>> 20 millis
Remove element time for hash set is 9 milliseconds >> 27 millis
Member test time for linked hash set is 7 milliseconds >> 27
Remove element time for linked hash set is 12 milliseconds >>26
Member test time for tree set is 11 milliseconds >> 47
Remove element time for tree set is 22 milliseconds >> 34
Member test time for array list is 4 milliseconds >> 39802
Remove element time for array list is 1 milliseconds >> 16196
Member test time for linked list is 3 milliseconds >> 52197
Remove element time for linked list is 1 milliseconds >> 14870