Obie zapewniają dostęp do danych klucz-wartość. Hashtable jest jedną z oryginalnych klas kolekcji w Javie. HashMap jest częścią nowej struktury kolekcji, dodanej w Javie 2, v1.2.
Główna różnica między nimi polega na tym, że dostęp do tabeli jest zsynchronizowany na stole, podczas gdy dostęp do mapy HashMap nie jest możliwy. Możesz go dodać, ale nie ma go domyślnie.
Kolejną różnicą jest to, że iterator w HashMap jest odporny na awarie, podczas gdy moduł wyliczający dla HashTable nie jest. Jeśli zmienisz mapę podczas iteracji, będziesz wiedział.
Trzecia różnica polega na tym, że HashMap dopuszcza wartości puste, podczas gdy HashTable nie.
odpowiedzi do edytowanej pytanie:
/** imageID --> image map */
//imageID - String. imgs is a map of imageID and ImageIcon. imageID is key. ImageIcon is value.
Map<String,ImageIcon> imgs = new HashMap<String,ImageIcon>();
Następnie w klasie później:
//SEE INLINE COMMENTS
// images
//No definition provided. May be putting values into the imgs map.
loadImages();
//this.DEFAULT_IMAGE_ID is some imageID. imgs.get gets the value for that imageID, which
//is ImageIcon for that imageID. That is stored in actualImage variable.
actualImage = imgs.get(this.DEFAULT_IMAGE_ID);
//Creating a new JLabel with actualImage.
JLabel label = new JLabel(actualImage);
@JigarJoshi - Dzięki za ten link i dobry punkt. po mojej edycji; Myślę jednak, że moje pytanie jest teraz trochę inne. – Coffee