
Untitled
By: a guest on
May 11th, 2012 | syntax:
None | size: 1.36 KB | hits: 14 | expires: Never
HashMap Alternative for Storing Integers
import java.util.*;
public class Main {
int n = 10;
Random random = new Random();
Set<Integer> hashSet = new HashSet<Integer>(n);
Set<Integer> treeSet = new HashSet<Integer>(n);
{
List<Integer> numbers = new LinkedList<Integer>();
for (int i = 0; i < n; i++)
numbers.add(random.nextInt());
System.out.println(numbers);
hashSet.addAll(numbers);
treeSet.addAll(numbers);
System.out.println(numbers);
}
int hits, misses;
void init() {
}
long time(Set<Integer> set, int n) {
long t0 = System.currentTimeMillis();
for (int i = 0; i < n; i++)
if (set.contains(random.nextInt())) hits++;
else
misses++;
return System.currentTimeMillis() - t0;
}
void print(long dt, int n, String set) {
System.out.println(set + " " + n + " trials in " + dt + " ms. = " + 1000. * n / dt + "trials/sec.");
}
public static void main(String[] args) {
int trials = 10000000;
long dt=0;
for (int i = 0; i < 10; i++) {
Main main = new Main();
dt = main.time(main.hashSet, trials);
main.print(dt, trials, "hashSet");
dt = main.time(main.treeSet, trials);
main.print(dt, trials, "treeSet");
}
}
}