使用多種方式實現遍歷HashMap的方法

2022-10-07 09:09:10 字數 1640 閱讀 3968

今天講解的主要是使用多種方式來實現遍歷hashmap取出key和value,首先在j**a中如果想讓乙個集合能夠用for增強來實現迭代,那麼此介面或類必須實現iterable介面,那麼iterable究竟是如何來實現迭代的,在這裡將不做講解,下面主要講解一下遍歷過程。

//定義乙個泛型集合

map map =www.cppcns.com new hashmap();

//通過map的put方法向集合中新增資料

map.put("001", "劉備");

map.put("002", "曹操");

map.put("003", "孫權");

方式一:使用該map介面的keyset方法來實現

問題:我們都知道map介面並沒有實現iterable介面,為什麼能用他的ketset方法就能實現迭代呢?

解析:因為keyset方法返回此對映中包含的鍵的 set 檢視,這個方法竟然能返回乙個set試圖,也就說他的返回值型別是乙個set介面,我們可以通過api文件看到set介面他是實現了iterable介面,所以能實現迭代。

//呼叫keyset方法放回乙個set介面型別

set set = map.keyset();

//使用for增強來取出key和value

for (string item : set)

方式二:使用map介面的values方法實現(for增強)

同理:呼叫map介面的values方法他放回乙個collection試圖,collection介面他又實現了iterable介面,所以能夠迭代。

collection con = map.values();

for (string item : con)

方式三:使用map介面的entryset方法實現(for增強)

entryset:entryset()的返回值也是返回乙個set集合,此集合的型別為map.entry,map.entry是map宣告的乙個內部介面,此介面為泛型,定義為entry。它表示map中的乙個實體(乙個key-value對)。

set> setentry = map.entryset();

for (entry item : setentry)

方式四:使用map介面的keyset().iterable()(while迴圈)

iterable():返回在此 set 中的元素上進行迭代的迭代器。返回的元素沒有特定的順序(除非此 set 是某個提供順序保證的類的例項)。返回程式設計客棧值型別iterator

iterator it = map.keyset().iterator();

//如果仍有元素可以迭代,則返回 true。 while (it.hasnext())

方式五:使用map介面的value.iterable()(while迴圈)

iterator it1 = map.values().iterator();

while (it1.hasnext())

方式六:使用map介面的entryset()www.cppcns.com.iterable()(while迴圈)

iterator> it2 = map.entryset().iterator();

while (it2.hasnext())

本文標題: 使用多種方式實現遍歷hashmap的方法

本文位址:

多種方式實現http服務

在對伺服器實現web服務的時候,面對多個使用者的請求時,我們可以採取多程序或者多執行緒。下面是他們的實現 import urllib.request import multiprocessing import re import socket def service client new socke...

HTML 多種方式使用列表

在ol標籤中使用start屬性,設定起始的序號 在li標籤中使用value屬性,改變列表內的編號順序 例 編號第乙個從10開始,第四個重20開始 start 10 c 程式設計 資訊系統開發與管理 資料結構導論 value 20 演算法設計 軟體工程 ol 在ol標籤中使用type屬性,便可指定編號...

PHP 迴圈遍歷陣列的多種方式

最近恰好看到了 php 迴圈陣列有多種方式,於是便總結一下這幾種日常開發中,使用比較頻繁的方式。1 for 只支援索引陣列,不支援關聯陣列 array a b c d for i 0 i2 foreach 索引陣列和關聯陣列都可以 foreach array as key value 3 while...