From subsecret
Jump to: navigation, search
No edit summary
Line 7: Line 7:
=Download=
=Download=
abc
abc
==Changes to original code==
*Removed all non-hashmap relevant code
*Fixed bug where OpenLongObjectHashMap.indexOfValue(...) and OpenIntObjectHashMap.indexOfValue(...) used "==" rather than equals for Object types.
*Created new interfaces and classes for wrapping Colt Project HashMap in Java's Map<K,V> interface.


=Usage=
=Usage=

Revision as of 14:48, 15 June 2013

Extension of Colt HashMap using Generics for storage of Objects

This is based on part of the code from Colt Project: http://acs.lbl.gov/software/colt/ The Colt Project is made before generics was introduced in Java. This means that the HashMap from Colt Project cannot be used as a drop-in replacement for Java's HashMap.

This version contains only the HashMap part of Colt Project (version 1.2.0) and adds the support for generics, so that it can now be used as a drop-in replacement for Java's HashHamp

Download

abc

Changes to original code

  • Removed all non-hashmap relevant code
  • Fixed bug where OpenLongObjectHashMap.indexOfValue(...) and OpenIntObjectHashMap.indexOfValue(...) used "==" rather than equals for Object types.
  • Created new interfaces and classes for wrapping Colt Project HashMap in Java's Map<K,V> interface.

Usage

Class Key type Value type
ColtIntHashMap Int Object
ColtIntIntHashMap Int Int
ColtQuickIntIntHashMap Int Int
ColtIntDoubleHashMap Int Double
ColtLongHashMap Long Object
ColtDoubleIntHashMap Double Int

Benchmark

JVM options: -Xms8g -Xmx8g Insertions: 20 million Removals: 6 million Contains key: 4 million

Benchmark of Integer,Object

JVM 1.6

Map Insertions (sec.) Removals (sec.)
Java HashMap Colt HashMap Colt (Native) HashMap

JVM 1.7

Benchmark of Integer,Integer