Re: HashMap vs. TreeMap

Victor Grazi <[email protected]> Sun, 16 Dec 2007 12:07:28 -0500
Newsgroups gmane.comp.windows.devel.java.advanced
Message-ID <[email protected]>
and then there's ConcurrentHashMap which is purportedly faster than
HashMap for even single threaded access.

On 12/16/07, Randall R Schulz <[email protected]> wrote:
> On Saturday 15 December 2007 23:04, Avinash Lakshman wrote:
> > Hi All
> >
> > I need to store about a million key/value pairs. Which is more memory
> > efficient HashMap or TreeMap? With the HashMap it looks like the
> > resizing happens to be exponential but that is not the case with
> > TreeMap i.e sometimes I may have 64,000 keys but the internal table
> > allocated with the HashMap is at nearly double the value. I do not
> > care about access times i.e I need a sparse HashMap. How can I
> > acheive this? Can I think of the TreeMap as a poor man's sparse
> > HashMap? Are there  any other implementations I could look at? Please
> > advice.
>
> Two things:
>
> 1) You should consider the Gnu Trove / Trove4J collections, especially
> with very large hash tables. The implementation is much more
> space-efficient (it does not use chaining, which wastes a lot of
> memory; it also does not require wrapper objects.) Furthermore, the
> API, while a drop-in, type-compatible with the standard collections
> library, contains extra sets of classes for storing primitive types
> directly (non-boxed).
>
> 2) If you know how big the table is going to be, you should allocate it
> that big from the start and not rely on the automatic table growing
> behavior that occurs when the table overflows (or, in the case chained
> implementations, the chains get too long).
>
>
> What is a "sparse" hash map? Trove4J's tables allow you control the
> maximum load factor before the table is grown, but as I said, you
> shouldn't allow that to happen if you don't have to.
>
>
> <http://trove4j.sourceforge.net/>
>
>
> > Thanks
> > Avinash
>
>
> Randall Schulz
>
> ===================================
> This list is hosted by DevelopMentor(R)  http://www.develop.com
>
> View archives and manage your subscription(s) at http://discuss.develop.com
>

===================================
This list is hosted by DevelopMentor®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com