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!
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).]
"JavaRanch, where the deer and the Certified play" - David O'Meara