Proposal for improving performance of TreeMap and others
Thomas Hawtin
Thomas.Hawtin at Sun.COM
Mon Jan 7 19:59:53 UTC 2008
cowwoc wrote:
> I noticed that TreeMap (and maybe other classes) require a user to either
> pass in a Comparator or ensure that all keys must implement Comparable. The
> TreeMap code then uses a utility method whenever it needs to compare two
> keys:
I'm not going to comment about performance, but there is a problem with
serialisation.
TreeMap.comparator is final (and non-transient).
TreeMaps serialised with earlier versions will be deserialised with null
comparator. So, comparator would either need to be made non-final or
sun.misc.Unsafe used.
For the serialisation case, it would be necessary to change writeObject
to use putFields rather than defaultWriteObject (not very nice, but not
half as nasty as I originally thought).
Tom Hawtin
More information about the core-libs-dev
mailing list