1. 程式人生 > >Iterator<Entry<String,String>> iter=map.entrySet().iterator(); 是什麽意思

Iterator<Entry<String,String>> iter=map.entrySet().iterator(); 是什麽意思

數據轉換 每一個 表示 try 學習 獲取元素 泛型 set 使用

map不有個Key和value嗎 一個Key對應一個value 而key和value組合起來的一個組就是entry 要想取出這個組裏的key和value就用entry的叠代器叠代即可。

//獲得map的叠代器,用作遍歷map中的每一個鍵值對
Iterator是叠代器,map之前應該定義過,姑且認為是HashMap。
<Entry<String,String>>表示map中的鍵值對都是String類型的。
map.entrySet()是把HashMap類型的數據轉換成集合類型
map.entrySet().iterator()是去獲得這個集合的叠代器,保存在iter裏面。。
叠代器這麽用:

while(iter.hasNext()) {
Entry obj = it.next();//就能獲得map中的每一個鍵值對了
}

----------------------------------------------------------------------------

Iterator<Entry<String,String>> iter=map.entrySet().iterator();按正常思路來寫怎樣寫
(調用entrySet()和iterator()不是分開寫的嗎?
為什麽Entry的首字母要大寫
----------------------------------------------------------------

Iterator<String> iter;//聲明一個叠代器,泛型裏面是String類型,表示叠代元素是String類型的
Iterator<Entry<String,String>> iter;//而你提供的要稍微復雜一點,叠代元素本身就是一個Entry鍵值對,
Entry<String,String>表示其key值是String,value值也是String。

後面部分:
HashSet set=map.entrySet();//將map類型數據轉換成集合set類型的。
iter=set.iterator();//獲得集合的叠代器。叠代器只針對集合類型的數據,
因此map類型的必須先轉換成集合類型才能使用叠代器去獲取元素。

Entry首字母大寫是因為它是java提供的類。。類首字母大寫這是JavaBean規範

不明白繼續問。。
---------------------------------------------------------------------------------------------
我學習的時候,HashMap使用Iterator叠代時,用keySet()來獲得,在什麽情況下,
使用entrySet(),兩者有什麽區別
-------------------------------------------------------------------------------------------
keySet獲得的只是key值的集合,
values獲得的是value集合,
entryset獲得的是鍵值對的集合。
具體怎麽用看你自己情況需要哈。

Iterator<Entry<String,String>> iter=map.entrySet().iterator(); 是什麽意思