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.
Dictionary is an obsolete relic that was created in Java 1.0. Sun's programmers made quite a lot of programming mistakes back then*, and this is one of those. Ignore the entire class and just use Map.
* How about Stack extending Vector instead of using one internally? Or Observable being an abstract class instead of an interface, with an abstract implementing class AbstractObservable like the current Observable to make it easier for people to implement it? Or Hashtable, Vector and StringBuffer being synchronized even though there isn't any reason for that?