Java中遍歷HashMap的5種方式
分類: JAVA
本教程將為你展示Java中HashMap的幾種典型遍歷方式。
如果你使用Java8,由於該版本JDK支援lambda表示式,可以採用第5種方式來遍歷。
如果你想使用泛型,可以參考方法3。如果你使用舊版JDK不支援泛型可以參考方法4。
1、 通過ForEach迴圈進行遍歷
-
mport java.io.IOException;
-
import java.util.HashMap;
-
import java.util.Map;
-
public class Test {
-
public static void main(String[] args) throws IOException {
-
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
-
map.put(1, 10);
-
map.put(2, 20);
-
// Iterating entries using a For Each loop
-
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
-
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
-
}
-
}
-
}
2、 ForEach迭代鍵值對方式
如果你只想使用鍵或者值,推薦使用如下方式
-
import java.io.IOException;
-
import java.util.HashMap;
-
import java.util.Map;
-
public class Test {
-
public static void main(String[] args) throws IOException {
-
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
-
map.put(1, 10);
-
map.put(2, 20);
-
// 迭代鍵
-
for (Integer key : map.keySet()) {
-
System.out.println("Key = " + key);
-
}
-
// 迭代值
-
for (Integer value : map.values()) {
-
System.out.println("Value = " + value);
-
}
-
}
-
}
3、使用帶泛型的迭代器進行遍歷
-
import java.io.IOException;
-
import java.util.HashMap;
-
import java.util.Iterator;
-
import java.util.Map;
-
public class Test {
-
public static void main(String[] args) throws IOException {
-
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
-
map.put(1, 10);
-
map.put(2, 20);
-
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());
-
}
-
}
-
}
4、使用不帶泛型的迭代器進行遍歷
-
import java.io.IOException;
-
import java.util.HashMap;
-
import java.util.Iterator;
-
import java.util.Map;
-
public class Test {
-
public static void main(String[] args) throws IOException {
-
Map map = new HashMap();
-
map.put(1, 10);
-
map.put(2, 20);
-
Iterator<Map.Entry> 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);
-
}
-
}
-
}
5、通過Java8 Lambda表示式遍歷
-
import java.io.IOException;
-
import java.util.HashMap;
-
import java.util.Map;
-
public class Test {
-
public static void main(String[] args) throws IOException {
-
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
-
map.put(1, 10);
-
map.put(2, 20);
-
map.forEach((k, v) -> System.out.println("key: " + k + " value:" + v));
-
}
-
}
輸出
-
key: 1 value:10
-
key: 2 value:20
原文:https://www.javatips.net/blog/iterate-hashmap-using-java