switched to nanoTime() and moved asserts to end of the benchmark.
small optimizations in fast pimitive HashMaps (Arrays.fill(), local variables).also improved javadoc and fixed exception messages.