This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
If you're looking for an understanding of the concepts, a good place to start might be a reading of Chapter 12, Section 3 of David J. Eck's Introduction to Programming Using Java. You also might like to know that you can look at the source code for most all of the classes and interfaces in the J2SE API. As part of your SDK installation, you'll likely find a file named src.jar or src.zip in the J2SE SDK installation folder.
Hashtable was the old, pre-Collections API data structure. HashMap is the new, post-Collections API way. Always use HashMap in new code. <rant> Why did Sun feel it was necessary to retrofit old collections to a new API? It just confuses new developers, not to mention the contracts of the old classes. It makes me wonder why they thought it would be a good idea to make all the members of the new Collections API unsynchronized...and then think it's an even better idea to violate that by retrofitting the old data structures. So, is having all of the collections unsync'd a good idea or NOT? </rant> Ahem. Sorry about that. Sometimes I just get SO ANGRY. sev