導航:首頁 > 編程語言 > javafor迭代map

javafor迭代map

發布時間:2023-06-08 17:13:51

1. java中怎麼遍歷map中value值

Java中遍歷Map對象的4種方法:

1、通過Map.entrySet遍歷key和value,在for-each循環中使用entries來遍歷.推薦,尤其是容量大時。

(1)javafor迭代map擴展閱讀:

關於JAVA的遍歷知識補充:

1、list和set集合都實現了Iterable介面,所以他們的實現類可以使用迭代器遍歷,map集合未實現該介面,若要使用迭代器循環遍歷,需要藉助set集合。

2、使用EntrySet 遍歷,效率更高。

2. JAVA循環遍歷Map的幾種方法

第一種用for循環

Java代碼
for(Map.Entry<String, String> entry:map.entrySet()){
System.out.println(entry.getKey()+"--->"+entry.getValue());
}

第二種用迭代

Java代碼
Set set = map.entrySet();
Iterator i = set.iterator();
while(i.hasNext()){
Map.Entry<String, String> entry1=(Map.Entry<String, String>)i.next();
System.out.println(entry1.getKey()+"=="+entry1.getValue());
}

用keySet()迭代

Java代碼
Iterator it=map.keySet().iterator();
while(it.hasNext()){
String key;
String value;
key=it.next().toString();
value=map.get(key);
System.out.println(key+"--"+value);
}

用entrySet()迭代

Java代碼
Iterator it=map.entrySet().iterator();
System.out.println( map.entrySet().size());
String key;
String value;
while(it.hasNext()){
Map.Entry entry = (Map.Entry)it.next();
key=entry.getKey().toString();
value=entry.getValue().toString();
System.out.println(key+"===="+value);
}

3. 工作中你是如何用Java 遍歷 Map的呢

在java中遍歷Map有不少的方法。我們看一下最常用的方法及其優缺點。

既然java中的所有map都實現了Map介面,以下方法適用於任何map實現(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等)

方法一、 在for-each循環中使用entries來遍歷

這是最常見的並且在大多數情況下也是最可取的遍歷方式。在鍵值都需要時使用。

作為方法一的替代,這個代碼看上去更加干凈;但實際上它相當慢且無效率。因為從鍵取值是耗時的操作(與方法一相比,在不同的Map實現中該方法慢了20%~200%)。如果你安裝了FindBugs,它會做出檢查並警告你關於哪些是低效率的遍歷。所以盡量避免使用。

總結

如果僅需要鍵(keys)或值(values)使用方法二。如果你使用的語言版本低於java 5,或是打算在遍歷時刪除entries,必須使用方法三。否則使用方法一(鍵值都要)。

4. java Map 怎麼遍歷

關於java中遍歷map具體有四種方式,請看下文詳解。

1、這是最常見的並且在大多數情況下也是最可取的遍歷方式,在鍵值都需要時使用。

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

for(Map.Entry<Integer, Integer> entry : map.entrySet()) {

System.out.println("Key = "+ entry.getKey() + ", Value = "+ entry.getValue());

}

2、在for-each循環中遍歷keys或values。

如果只需要map中的鍵或者值,你可以通過keySet或values來實現遍歷,而不是用entrySet。

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

for(Integer key : map.keySet()) {

System.out.println("Key = "+ key);

}

for(Integer value : map.values()) {

System.out.println("Value = "+ value);

}

該方法比entrySet遍歷在性能上稍好(快了10%),而且代碼更加干凈。

3、使用Iterator遍歷

使用泛型:

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();

while(entries.hasNext()) {

Map.Entry<Integer, Integer> entry = entries.next();

System.out.println("Key = "+ entry.getKey() + ", Value = "+ entry.getValue());

}

不使用泛型:

Map map = newHashMap();

Iterator entries = map.entrySet().iterator();

while(entries.hasNext()) {

Map.Entry entry = (Map.Entry) entries.next();

Integer key = (Integer)entry.getKey();

Integer value = (Integer)entry.getValue();

System.out.println("Key = "+ key + ", Value = "+ value);

}

4、通過鍵找值遍歷(效率低)

Map<Integer, Integer> map = newHashMap<Integer, Integer>();

for(Integer key : map.keySet()) {

Integer value = map.get(key);

System.out.println("Key = "+ key + ", Value = "+ value);

}

假設Map中的鍵值對為1=>11,2=>22,3=>33,現用方法1來遍歷Map代碼和調試結果如下:

(4)javafor迭代map擴展閱讀:

1、HashMap的重要參數

HashMap 的實例有兩個參數影響其性能:初始容量 和載入因子。容量是哈希表中桶的數量,初始容量只是哈希表在創建時的容量。

載入因子 是哈希表在其容量自動增加之前可以達到多滿的一種尺度。當哈希表中的條目數超出了載入因子與當前容量的乘積時,則要對該哈希表進行 rehash 操作(即重建內部數據結構),從而哈希表將具有大約兩倍的桶數。

在Java編程語言中,載入因子默認值為0.75,默認哈希表元為101。

2、HashMap的同步機制

注意,此實現不是同步的。 如果多個線程同時訪問一個哈希映射,而其中至少一個線程從結構上修改了該映射,則它必須保持外部同步。

(結構上的修改是指添加或刪除一個或多個映射關系的任何操作;以防止對映射進行意外的非同步訪問,如下:

Map m = Collections.synchronizedMap(new HashMap(...));

閱讀全文

與javafor迭代map相關的資料

熱點內容
跆拳道pdf 瀏覽:205
程序員畢設可以攻哪個方向 瀏覽:427
毛絨玩具怎麼壓縮 瀏覽:378
拖拉式編程教學視頻 瀏覽:793
伺服器壞了硬碟數據如何取出 瀏覽:602
體積加密度等於質量嗎 瀏覽:608
如何執行命令 瀏覽:859
速賣通指標源碼 瀏覽:179
linux切換root登錄 瀏覽:925
什麼是有效的伺服器地址 瀏覽:825
交通銀行app如何信用卡額度查詢 瀏覽:479
asp程序員收入 瀏覽:334
無線有密碼顯示未加密 瀏覽:212
檢查伺服器地址命令 瀏覽:599
編譯過程和解釋過程的圖表形式 瀏覽:837
文明重啟如何弄自己的伺服器免費 瀏覽:912
伺服器許可權不足如何解決 瀏覽:373
少兒編程樂高主要是學什麼 瀏覽:674
張家口人社app如何實名認證 瀏覽:296
淘寶圖片怎麼設置加密 瀏覽:314