In this Java project I’m looking at, I keep seeing code with HashMap, like so
/** imageID --> image map */
Map<String,ImageIcon> imgs = new HashMap<String,ImageIcon>();
Then later in the class:
// images
loadImages();
actualImage = imgs.get(this.DEFAULT_IMAGE_ID);
JLabel label = new JLabel(actualImage);
What is the purpose of this code? I am foggy on the whole concept here.
Both provide key-value access to data. The Hashtable is one of the original collection classes in Java. HashMap is part of the new Collections Framework, added with Java 2, v1.2.
The key difference between the two is that access to the Hashtable is synchronized on the table while access to the HashMap isn’t. You can add it, but it isn’t there by default.
Another difference is that iterator in the HashMap is fail-safe while the enumerator for the Hashtable isn’t. If you change the map while iterating, you’ll know.
And, a third difference is that HashMap permits null values in it, while Hashtable doesn’t.
Answer to your edited question:
Then later in the class: