Date: 24 August 2016
   Changed classes:
     T*Hash, T*ObjectMap, TObject*Map, THashMap, T**Map, T*List - made empty collections consume less memory
Date: 25 February 2015
   Changed classes:
     T*Map, T*Set - toString() added
     T*Byte* - added byte/Object to byte/Object maps and sets specializations
     T* - made compilable under JDK 5 (no @Override in interfaces)
     TObject*HashMap - added hashCode()
     T*ObjectHashMap - clone() fixed to fully copy _set array

Date: 02 April 2013
   Changed classes:
     T*Map, T*Decorator, T*List, T*Procedure, T*Function, T*Iterator, T*Hash, T*Set - made them autogenerated from templates "T*.template" in the util/src/gnu/trove/generate directory
     T*ObjectHashMap - removed state array, now state is stored in the values array, can be one of the TObjectHash.REMOVED, TObjectHash.NULL or the value itself
     T*Map.insertionIndex() - changed algorithm for determining index to insert new element at. Now it returns the first index of previously removed element, if any, instead of the next free/removed cell after the removed element cell.
     *.* - converted tabs to spaces
     T*.java - @Override added
     T*Decorator - bug fixed: inner class in entrySet() should override correct add() method
     TObjectHash#throwObjectContractViolation - more information added to the error message
     T*Map.HashProcedure, T*Map.EqProcedure - generified, explicit constructors added to reduce .class file count from 216 to 195
     directory layout changed:
       - .idea/* - directory added containing Intellij IDEA project files.
       - core/*  - directory added containing the main classes
       - artifacts/* - directory added containing output trove4j.jar and trove4j_src.jar
                       To rebuild trove4j.jar and trove4j_src.jar invoke Build/Artifacts
       - generated/* - directory added containing T*.java classes generated from templates
                       To regenerate sources, run Generate class
       - util/* - benchmark classes, templates (T*.template) files and the Generate class
       - classes/* - directory containing compiled classes from the "core" and "generated" modules
       - test/*    - directory added containing embryo tests for T*Map correctness
       - trove4j_changes.txt - this file

Date: 4 Feb 2013
   Changed classes:
     THashMap - fixed bug in the Entry.setValue()
     gnu.trove.benchmark.* - moved to the util/gnu.trove.benchmark package

Date: 5 May 2012
   Changed classes:
     TPrimitiveHash - fixed manual setUp in constructor (capacity, load_factor) as proper super call will do it properly

Date: 16 Apr 2012
   Changed classes:
     THash
     TPrimitiveHash
     TObjectHash
     TIterator
     gnu.trove.benchmark.Main
     and many others
     - implement autocompact on removing keys. Failure to do so leads to linear access time

Date: 15 Jan 2008
  Changed classes:
    THashMap - fixed bug in put() method for null value

Date: 17 Oct 2006
  Changed classes:
    gnu.trove.T*ArrayList - fixed bug in set() method

Date: 31 Jan 2006
  Changed classes:
    THash
    TPrimitiveHash - removed unnecessary usages of Math.floor and Math.ceil as those are native functions and thus very slow.
    
Date: 20 Sep 2004
  Added classes:
    gnu.trove.generate.Generate - class to generate gnu.trove.decorator classes
  Added files:
    util/src/gnu/trove/generate/O2PMapDecorator.template - template to generate Object to primitive HashMap decorators
    util/src/gnu/trove/generate/P2OMapDecorator.template - template to generate primitive to Object HashMap decorators
    util/src/gnu/trove/generate/P2PMapDecorator.template - template to generate primitive to primitive HashMap decorators
    util/src/gnu/trove/generate/SetDecorator.template - template to generate HashSet decorators
  Following classes were generified (i.e JDK 5.0 generics type parameters were added to class definitions):
    gnu.trove.decorator.TDoubleDoubleHashMapDecorator
    gnu.trove.decorator.TDoubleFloatHashMapDecorator
    gnu.trove.decorator.TDoubleHashSetDecorator
    gnu.trove.decorator.TDoubleIntHashMapDecorator
    gnu.trove.decorator.TDoubleLongHashMapDecorator
    gnu.trove.decorator.TDoubleObjectHashMapDecorator
    gnu.trove.decorator.TFloatDoubleHashMapDecorator
    gnu.trove.decorator.TFloatFloatHashMapDecorator
    gnu.trove.decorator.TFloatHashSetDecorator
    gnu.trove.decorator.TFloatIntHashMapDecorator
    gnu.trove.decorator.TFloatLongHashMapDecorator
    gnu.trove.decorator.TFloatObjectHashMapDecorator
    gnu.trove.decorator.TIntDoubleHashMapDecorator
    gnu.trove.decorator.TIntFloatHashMapDecorator
    gnu.trove.decorator.TIntHashSetDecorator
    gnu.trove.decorator.TIntIntHashMapDecorator
    gnu.trove.decorator.TIntLongHashMapDecorator
    gnu.trove.decorator.TIntObjectHashMapDecorator
    gnu.trove.decorator.TLongDoubleHashMapDecorator
    gnu.trove.decorator.TLongFloatHashMapDecorator
    gnu.trove.decorator.TLongHashSetDecorator
    gnu.trove.decorator.TLongIntHashMapDecorator
    gnu.trove.decorator.TLongLongHashMapDecorator
    gnu.trove.decorator.TLongObjectHashMapDecorator
    gnu.trove.decorator.TObjectDoubleHashMapDecorator
    gnu.trove.decorator.TObjectFloatHashMapDecorator
    gnu.trove.decorator.TObjectIntHashMapDecorator
    gnu.trove.decorator.TObjectLongHashMapDecorator
    CanonicalEquality
    Equality
    IdentityEquality
    gnu.trove.TDoubleObjectHashMap
    gnu.trove.TDoubleObjectIterator
    gnu.trove.TDoubleObjectProcedure
    gnu.trove.TFloatObjectHashMap
    gnu.trove.TFloatObjectIterator
    gnu.trove.TFloatObjectProcedure
    THashIterator
    THashMap
    THashSet
    gnu.trove.TIntObjectHashMap
    gnu.trove.TIntObjectIterator
    gnu.trove.TIntObjectProcedure
    TLinkedList
    gnu.trove.TLongObjectHashMap
    gnu.trove.TLongObjectIterator
    gnu.trove.TLongObjectProcedure
    TObjectCanonicalHashingStrategy
    gnu.trove.TObjectDoubleHashMap
    gnu.trove.TObjectDoubleIterator
    gnu.trove.TObjectDoubleProcedure
    gnu.trove.TObjectFloatHashMap
    gnu.trove.TObjectFloatIterator
    gnu.trove.TObjectFloatProcedure
    TObjectFunction
    TObjectHash
    TObjectHashIterator
    TObjectHashingStrategy
    TObjectIdentityHashingStrategy
    gnu.trove.TObjectIntHashMap
    gnu.trove.TObjectIntIterator
    gnu.trove.TObjectIntProcedure
    gnu.trove.TObjectLongHashMap
    gnu.trove.TObjectLongIterator
    gnu.trove.TObjectLongProcedure
    TObjectObjectProcedure
    TObjectProcedure
    ToObjectArrayProcedure

Date: 20 April 2004
  Added classes:
    CanonicalEquality
    Equality
    IdentityEquality
    TObjectCanonicalHashingStrategy

  Modified classes:
    THash - default load factor and default capacity changed
    THashMap - method clear (line 365) does nothing when map is empty; reorder imports
    gnu.trove.TIntArrayList - default capacity reduced (line 46); reorder imports
    TIntStack - added copy constructor (line 46)
    TObjectHash - methods boolean equals(Object, Object) (line 295) and int computeHashCode(Object) (line 281) accepts nulls as parameters. Hash code of null is 0.

  Reorder imports:
    gnu.trove.TDoubleHashSet
    gnu.trove.TFloatHashSet
    THashSet
    gnu.trove.TIntHashSet
    TLinkedList
    gnu.trove.TLongHashSet
