當前位置:首頁 » 編程語言 » javamap遍歷

javamap遍歷

發布時間: 2022-04-14 14:19:58

A. java中map的常用遍歷方法有哪些

ava中map的常用遍歷的具體方法有:

一 、在for-each循環中使用entries來遍歷。這是最常見的並且在大多數情況下也是最可取的遍歷方式。在鍵值都需要時使用。

二、 在for-each循環中遍歷keys或values。如果只需要map中的鍵或者值,你可以通過keySet或values來實現遍歷,而不是用entrySet。

三、使用Iterator遍歷。

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

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

B. java中map怎麼遍歷

在Java中如何遍歷Map對象
How to Iterate Over a Map in Java

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

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

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

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

[java] view plain
Map<Integer, Integer> map = new HashMap<Integer, Integer>();

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

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

}

注意:for-each循環在java 5中被引入所以該方法只能應用於java 5或更高的版本中。如果你遍歷的是一個空的map對象,for-each循環將拋出NullPointerException,因此在遍歷前你總是應該檢查空引用。

方法二 在for-each循環中遍歷keys或values。

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

[java] view plain
Map<Integer, Integer> map = new HashMap<Integer, Integer>();

//遍歷map中的鍵

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

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

}

//遍歷map中的值

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

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

}

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

方法三使用Iterator遍歷

使用泛型:

[java] view plain
Map<Integer, Integer> map = new HashMap<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());

}

不使用泛型:

[java] view plain
Map map = new HashMap();

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);

}

你也可以在keySet和values上應用同樣的方法。

該種方式看起來冗餘卻有其優點所在。首先,在老版本
java中這是惟一遍歷map的方式。另一個好處是,你可以在遍歷時調用iterator.remove()來刪除entries,另兩個方法則不能。根
據javadoc的說明,如果在for-each遍歷中嘗試使用此方法,結果是不可預測的。

從性能方面看,該方法類同於for-each遍歷(即方法二)的性能。

方法四、通過鍵找值遍歷(效率低)

[java] view plain
Map<Integer, Integer> map = new HashMap<Integer, Integer>();

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

Integer value = map.get(key);

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

}

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

C. java遍歷map幾種簡單方法

代碼如下:

importjava.util.HashMap;
importjava.util.Map;

publicclassApp{

publicstaticvoidmain(String[]args){

Map<String,Object>map=newHashMap<>();

map.put("Name","Barry");
map.put("Gender","Male");
map.put("Age",25);


//第一種遍歷方式

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

//第二種遍歷方式

map.forEach((key,value)->{
System.out.println(key+"="+value);
});


//通過遍歷key,然後再獲取value

for(Stringkey:map.keySet()){
System.out.println(key+"="+map.get(key));
}

//單獨遍歷values

for(Objectvalue:map.values()){
System.out.println(value);
}
}
}

D. 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);
}

E. java中map集合怎麼遍歷

遍歷方法代碼如下:

importjava.util.HashMap;
importjava.util.Map;

publicclassApp01{

publicstaticvoidmain(String[]args){

Map<String,String>map1=newHashMap<String,String>();
map1.put("A","ABC");
map1.put("B","BCD");
map1.put("C","CDE");

//遍歷
for(Map.Entry<String,String>entry:map1.entrySet()){
System.out.println(entry.getKey()+"->"+entry.getValue());
}
}
}

F. 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代碼和調試結果如下:

(6)javamap遍歷擴展閱讀:

1、HashMap的重要參數

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

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

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

2、HashMap的同步機制

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

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

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

G. java中map的常用遍歷方法

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

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

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

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

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

}

注意:for-each循環在java 5中被引入所以該方法只能應用於java 5或更高的版本中。如果你遍歷的是一個空的map對象,for-each循環將拋出NullPointerException,因此在遍歷前你總是應該檢查空引用。

方法二 在for-each循環中遍歷keys或values。

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

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

//遍歷map中的鍵

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

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

}

//遍歷map中的值

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

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

}

該方法比entrySet遍歷在性能上稍好

方法三使用Iterator遍歷

使用泛型:

Map<Integer, Integer> map = new HashMap<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 = new HashMap();

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);

}

方法四、通過鍵找值遍歷(效率低)

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

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

Integer value = map.get(key);

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

}

總結

如果僅需要鍵(keys)或值(values)使用方法二。

如果你使用的語言版本低於java 5,或是打算在遍歷時刪除entries,必須使用方法三。

否則使用方法一(鍵值都要)。

H. Java中如何遍歷map中的value值

Map<Integer,String> map = new HashMap<Integer,String>();
Iterator it = map.keySet().iterator();
while(it.hasNext()){
int key = (Integer) it.next();
String value = map.get(key);
}

這個我寫的一個例子。。。
沒有直接遍歷值的方法 只能先得到Map 中的key的集合
然後遍歷出value

I. java如何遍歷map的所有的元素

package net.nie.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class HashMapTest { private static Map<Integer, String> map=new HashMap<Integer,String>(); /** 1.HashMap 類映射不保證順序;某些映射可明確保證其順序: TreeMap 類 * 2.在遍歷Map過程中,不能用map.put(key,newVal),map.remove(key)來修改和刪除元素, * 會引發 並發修改異常,可以通過迭代器的remove(): * 從迭代器指向的 collection 中移除當前迭代元素 * 來達到刪除訪問中的元素的目的。 * */ public static void main(String[] args) { map.put(1,"one"); map.put(2,"two"); map.put(3,"three"); map.put(4,"four"); map.put(5,"five"); map.put(6,"six"); map.put(7,"seven"); map.put(8,"eight"); map.put(5,"five"); map.put(9,"nine"); map.put(10,"ten"); Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator(); while(it.hasNext()){ Map.Entry<Integer, String> entry=it.next(); int key=entry.getKey(); if(key%2==1){ System.out.println("delete this: "+key+" = "+key); //map.put(key, "奇數"); // //map.remove(key); // it.remove(); //OK } } //遍歷當前的map;這種新的for循環無法修改map內容,因為不通過迭代器。 System.out.println("-------nt最終的map的元素遍歷:"); for(Map.Entry<Integer, String> entry:map.entrySet()){ int k=entry.getKey(); String v=entry.getValue(); System.out.println(k+" = "+v); } } }

J. Java中怎麼遍歷map中value值

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

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

(10)javamap遍歷擴展閱讀:

關於JAVA的遍歷知識補充:

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

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

熱點內容
用近似歸演算法 發布:2025-01-21 00:51:56 瀏覽:517
php顯示資料庫中圖片 發布:2025-01-21 00:44:34 瀏覽:146
如何在伺服器中找文件 發布:2025-01-21 00:38:50 瀏覽:911
Cmdpython命令 發布:2025-01-21 00:30:38 瀏覽:758
mac常用解壓 發布:2025-01-21 00:01:47 瀏覽:692
linuxcpu使用 發布:2025-01-21 00:00:59 瀏覽:850
成套供應配電櫃有哪些配置 發布:2025-01-21 00:00:52 瀏覽:121
GO編譯器PDF 發布:2025-01-21 00:00:52 瀏覽:704
osu上傳成績 發布:2025-01-20 23:59:57 瀏覽:642
了解sql 發布:2025-01-20 23:58:39 瀏覽:656