Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

HashTable

 
Chris Linde
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am wondering what memory scheme is used to layout a Hashtable in Java. Is it the case that an array holds all the keys, and each key points to the address of it's corresponding value object which exists somewhere out there in memory? Or is it more like a two dimensional array, where each 'bucket' holds key/value pairs right next to each other? If anyone can help me understand this I would be grateful!
 
John Dale
Ranch Hand
Posts: 399
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In you JDK, you may find a file src.jar, which includes sample source for much of the standard library, including Hashtable.
 
Cindy Glass
"The Hood"
Sheriff
Posts: 8521
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well, it is more like your first description.
A Hashtable is an array of Entry objects. Each Entry instance has several fields in it:
int hash;
Object key; // this refers to an entry in the KeySet
Object value; // this refers to a entry in the ValueSet
Entry next; //this refers to a entry in the EntrySet
However the Hashtable as a whole also has an Enumerator object and an Iterator object and several other tracking fields like counts and hashcodes etc.
So it gets quite compicated.

[This message has been edited by Cindy Glass (edited October 16, 2001).]
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic