關于HashMap的詳細介紹請參考Java基礎-HashMap集合
1.Map.Entry簡介
Map是java中的介面,Map.Entry是Map的一個內部介面,
Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法回傳值是Map中key值的集合;entrySet()的回傳值也是回傳一個Set集合,此集合的型別為Map.Entry,
Map.Entry是Map宣告的一個內部介面,此介面為泛型,定義為Entry<K,V>,它表示Map中的一個物體(一個key-value對),介面中有getKey(),getValue方法,
2. 從entrySet()方法解釋Map.Entry
set<Map,Entry<K,V>> entrySet() 將Map集合轉換成set集合
假設現在有一個Map集合,如下所示
map集合
| key | value |
|---|---|
| 1 | zhangsan |
| 2 | lisi |
| 3 | wangwu |
| 4 | zhaoliu |
Set set=map1.entrySet();
set集合物件****中的每個元素都是Entry鍵值對
1=zhangsan
2=lisi
3=wangwu
4=zhaoliu
注意:Map集合通過entrySet()方法轉換成的這個set集合,set集合中元素的型別是Map.Entry<K,V>
Map.Entry和String一樣,都是一種型別的名字,只不過Map.entry是靜態內部類,是Map中的
我們可以深入HashMap的原始碼中看到
static class Node<K,V> implements Map.Entry<K,V> {
final int hash;
final K key;
V value;
Node<K,V> next;
Node<K,V>實作了Entry介面,Entry介面中K表示key,即鍵,V表示value,即值,Entry即Node是Map集合中的一個物件元素,而Map集合正是由一個個Entry即Node物件所構成,
正是因為Node實作了Entry介面,所以使用Entry的時候也可以使用其getValue()和getKey()方法
具體結構如圖所示:

2. 使用Map.Entry遍歷Map集合
public static void main(String[] args) {
Map<Integer,String> maps=new HashMap<Integer,String>();
maps.put(3,"張飛");
maps.put(2,"關羽");
maps.put(4,"趙云");
maps.put(1,"劉備");
maps.put(5,"馬超");
Set<Map.Entry<Integer,String>> sets=maps.entrySet();
for(Map.Entry<Integer,String> entry:sets){
System.out.println("key="+entry.getKey()+" value="+entry.getValue());
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/258169.html
標籤:java
下一篇:什么是HashMap
