Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 11th, 2012  |  syntax: None  |  size: 1.36 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. HashMap Alternative for Storing Integers
  2. import java.util.*;
  3. public class Main {
  4.     int n = 10;
  5.     Random random = new Random();
  6.     Set<Integer> hashSet = new HashSet<Integer>(n);
  7.     Set<Integer> treeSet = new HashSet<Integer>(n);
  8.     {
  9.         List<Integer> numbers = new LinkedList<Integer>();
  10.         for (int i = 0; i < n; i++)
  11.             numbers.add(random.nextInt());
  12.         System.out.println(numbers);
  13.         hashSet.addAll(numbers);
  14.         treeSet.addAll(numbers);
  15.         System.out.println(numbers);
  16.     }
  17.     int hits, misses;
  18.     void init() {
  19.  
  20.     }
  21.     long time(Set<Integer> set, int n) {
  22.         long t0 = System.currentTimeMillis();
  23.         for (int i = 0; i < n; i++)
  24.             if (set.contains(random.nextInt())) hits++;
  25.             else
  26.                 misses++;
  27.         return System.currentTimeMillis() - t0;
  28.     }
  29.     void print(long dt, int n, String set) {
  30.         System.out.println(set + " " + n + " trials in " + dt + " ms. = " + 1000. * n / dt + "trials/sec.");
  31.     }
  32.     public static void main(String[] args) {
  33.         int trials = 10000000;
  34.         long dt=0;
  35.         for (int i = 0; i < 10; i++) {
  36.             Main main = new Main();
  37.             dt = main.time(main.hashSet, trials);
  38.             main.print(dt, trials, "hashSet");
  39.             dt = main.time(main.treeSet, trials);
  40.             main.print(dt, trials, "treeSet");
  41.         }
  42.     }
  43. }