Cof*_*fee 12 java dictionary hashmap
在我正在看的这个Java项目中,我一直在看HashMap的代码,就像这样
/** imageID --> image map */
Map<String,ImageIcon> imgs = new HashMap<String,ImageIcon>();
Run Code Online (Sandbox Code Playgroud)
然后在课堂上:
// images
loadImages();
actualImage = imgs.get(this.DEFAULT_IMAGE_ID);
JLabel label = new JLabel(actualImage);
Run Code Online (Sandbox Code Playgroud)
这段代码的目的是什么?我对这整个概念都很模糊.
exc*_*ion 20
两者都提供对数据的键值访问.Hashtable是Java中的原始集合类之一.HashMap是新的集合框架的一部分,添加了Java 2,v1.2.
两者之间的关键区别是对表的同步访问Hashtable,而不是对HashMap的访问.您可以添加它,但默认情况下它不存在.
另一个区别是HashMap中的迭代器是故障安全的,而Hashtable的枚举器则不是.如果你在迭代时更改地图,你就会知道.
而且,第三个区别是HashMap允许空值,而Hashtable则不允许.
回答您编辑过的问题:
/** 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>();
Run Code Online (Sandbox Code Playgroud)
然后在课堂上:
//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);
Run Code Online (Sandbox Code Playgroud)
在 Java 中使用 HashMap 的主要好处是什么?应该是速度吧 此容器将其数据拆分为许多“桶”,这些“桶”仅包含具有相同密钥哈希码的元素。这样,当它需要查找某个键值对时,它不必遍历其所有数据,而只需遍历键中具有与搜索键的哈希码相同的哈希码的元素。
归档时间: |
|
查看次数: |
22677 次 |
最近记录: |