標籤:為什麼 操作 點擊 顯示 ace api body 9.png 迭代
一.
對於上一節的操作而言,這裡還有另外一種做法,相對而言,有一點麻煩。
從剛才的動作,總結出一個原理。map集合沒有迭代器,但是我們可以把map轉換成有迭代器的集合,比如說set。
這是為什麼呢?為什麼不返回arrylist,這是拿所有的鍵,鍵是唯一的,所以返回的應該是set集合,保證元素的唯一性。
接下來,在API當中,還有一個方法也是返回set集合,(這裡的set有什麼特殊含義麼?)
現在用它來完成取出所有元素的方式。keyset大家比較容易明白,裡面裝的都是鍵。但是,entryset是返回此映射所包含的映射關係的set視圖,映射關係是什麼意思呢?映射關係,代表這鍵和值之間的對應,這裡面儲存的是對應關係。map.entry是索引值關聯類型,一會兒解釋為什麼這麼寫。對應關係裡麵包含鍵和值。
迭代器後面要有泛型(不太懂)。it.next返回的是結婚證,set中的泛型我不管,但是迭代器中的泛型和set中的要一致。
一現在有點糾結,有了結婚證,怎麼拿這裡面的鍵和值呢?結婚證裡面本身包含著鍵和值,由鍵和值組成。取結婚證裡的鍵和值,結婚證自己最清楚。
點擊一下map.entry<K,V>這個結婚證,方法摘要中顯示都能取的出來,而且還能設定。隨便可以改變某一個鍵的值。
結果顯示沒有問題,這是第二種取出方法。畫個圖解釋一下,
entrySet得到的結婚證什麼樣呢?它把鍵和值封裝成一個對象,這是一個元素,存了四個元素。這裡面的一個元素就是map,entry<key.value>對象。
很多人對map.entry<key,value>有點迷糊,對於的寫法有點搞不清。
這種操作以前見過,
myentry是介面,隨著外部介面載入而載入。
先說map介面,然後往下看是嵌套類。嵌套類是內建類,是靜態interface,
點進去看,是正在封閉介面map當中。你見過靜態注釋麼?只有成員才有,所以它是個成員。
為什麼要把它定義在裡面,放在外面不行嗎?MyEntry是一個包含鍵和值的內容,它是鍵和值的映射關聯性物件,只有現有這種map映射,才存在著關係。而它把關係封裝成對象,關係在訪問map中的鍵和值。那就是外部規則中有內部規則,內部規則直接存取外部規則中的內容。什麼點什麼,全部都是嵌套的。
內部類本身是種封裝形式,但是如果它能對外使用的話,就暴露出去。
介面中的靜態介面
JAVA-初步認識-常用對象API(集合架構-重點方法entryset示範圖解)