Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Size of an entry in a Map

DZone's Guide to

Size of an entry in a Map

· Java Zone ·
Free Resource

Verify, standardize, and correct the Big 4 + more– name, email, phone and global addresses – try our Data Quality APIs now at Melissa Developer Portal!

There have been some very good articles on the size of a map. However as a map grows, it initial size become less important and the size per entry is what matters.

How are the sizes measured

In these tests an int key and long values are used. This adds a small but realistic size to each entry.

Size per entry of a medium sized Map

The following are the size per entry in bytes. The Map has 1024 entries.

Type of Map 32-bit 64-bit compressed 64-bit not compressed
TIntLongHashMap 26.9 26.9 27.0
FastMap (recycled) 32.0 39.9 47.9
IdentityHashMap 48.0 56.0 80.0
ConcurrentSkipListMap 68.3 76.1 108.3
TreeMap 64.0 80.0 112.0
HashMap 64.0 80.0 112.0
SynchronizedMap 64.0 80.0 112.0
ConcurrentHashMap 65.2 81.4 114.0
Properties 68.0 84.0 120.0
Hashtable 68.0 84.0 120.0
LinkedHashMap 72.0 88.0 128.1
WeakHashMap 80.0 88.0 136.1
 
The Javolution FastMap needed to be recycled. If it is not recycled, it was the largest per entry.

Conclusion

It may be worth considering The GNU Trove collections if you have primitive keys and/or values. However if you have non-trivial keys or values classes, the size of the collection is less likely to matter.

The Code

SizeOfMapsTest.java

 

From http://vanillajava.blogspot.com/2011/07/size-of-entry-in-map.html

Developers! Quickly and easily gain access to the tools and information you need! Explore, test and combine our data quality APIs at Melissa Developer Portal – home to tools that save time and boost revenue. Our APIs verify, standardize, and correct the Big 4 + more – name, email, phone and global addresses – to ensure accurate delivery, prevent blacklisting and identify risks in real-time.

Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}