今天在編程中,需要使用到Hashmap來存儲和傳遞數據,發現自己學習Java這麼久,實際上對泛型依舊知之甚少,搜索整理了一下HashMap的使用。
HashMap的聲明初始化,因為泛型的原因,起兩個參數key和value需指定具體的類型,使用put方法可以將數據傳送到HashMap中,
HashMap<String, Integer> data = new HashMap<String, Integer>();
data.put("蘋果", 100);
data.put("梨子", 200);
data.put("葡萄", 300);
data.put("香蕉", 400);
data.put("荔枝", 500);
HashMap使用我重點關注度是對其的遍歷算法,,其遍歷算法主要有兩種,可以使用KeySet和entrySet來進行遍歷,核心代碼如下所示:
第一種:使用的是EntrySet
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
效率高,以後一定要使用此種方式!
第二種:,使用的是KeySet
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
小隊來說效率低一些,這種方式它的優點在於可以根據你所想要的key值得到你想要的 values,更具靈活性!!
這兩種遍歷的方式實際上是有差別的,對於keySet其實是遍歷了2次,一次是轉為iterator,一次就從hashmap中取出key所對於的value。
而entryset只是遍歷了第一次,就是把key和value都放到了entry中,所以就快了。