方法:
第一种:通过Map.keySet遍历key和value(通过get(key)获取)
第二种:通过Map.entrySet使用iterator遍历
第三种:通过Map.entrySet遍历
第四种:通过Map.values()遍历所有的value,但不能遍历key
举例说明
package com.mcy;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Name {
public static void main(String[] args) throws Exception {
Map<String, String> map = new HashMap<>();
map.put("name", "XXX");
map.put("age", "23");
map.put("微信", "123456");
map.put("QQ", "65432");
map.put("爱好", "逛吃逛吃逛吃");
//第一种:通过Map.keySet遍历key和value
for (String key : map.keySet()) {
System.out.println("key= " + key + " ;value= " + map.get(key));
}
System.out.println("------------------------------------------------ ");
//第二种:通过Map.entrySet使用iterator遍历
Iterator<Map.Entry<String, String>> iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<String, String> next = iter.next();
System.out.println("key= " + next.getKey() + " ; value= " + next.getValue());
}
System.out.println("------------------------------------------------ ");
//第三种:通过Map.entrySet遍历
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " ; value= " + entry.getValue());
}
System.out.println("------------------------------------------------ ");
//第四种:通过Map.values()遍历所有的value,但不能遍历key
for (String str : map.values()) {
System.out.println("value= " + str);
}
}
}
结果截图
key= QQ ;value= 65432
key= 爱好 ;value= 逛吃逛吃逛吃
key= name ;value= XXX
key= 微信 ;value= 123456
key= age ;value= 23
------------------------------------------------
key= QQ ; value= 65432
key= 爱好 ; value= 逛吃逛吃逛吃
key= name ; value= XXX
key= 微信 ; value= 123456
key= age ; value= 23
------------------------------------------------
key= QQ ; value= 65432
key= 爱好 ; value= 逛吃逛吃逛吃
key= name ; value= XXX
key= 微信 ; value= 123456
key= age ; value= 23
------------------------------------------------
value= 65432
value= 逛吃逛吃逛吃
value= XXX
value= 123456
value= 23
HashMap 遍历
1.迭代器 EntrySet
public class HashMapTest {
public static void main(String[] args) {
// 创建并赋值 HashMap
Map<Integer, String> map = new HashMap();
map.put(1, "Java");
map.put(2, "JDK");
map.put(3, "Spring Framework");
map.put(4, "MyBatis framework");
map.put(5, "Java中文社群");
// 遍历
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
}
2.迭代器 KeySet
public class HashMapTest {
public static void main(String[] args) {
// 创建并赋值 HashMap
Map<Integer, String> map = new HashMap();
map.put(1, "Java");
map.put(2, "JDK");
map.put(3, "Spring Framework");
map.put(4, "MyBatis framework");
map.put(5, "Java中文社群");
// 遍历
Iterator<Integer> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
Integer key = iterator.next();
System.out.println(key);
System.out.println(map.get(key));
}
}
}
3.ForEach EntrySet
public class HashMapTest {
public static void main(String[] args) {
// 创建并赋值 HashMap
Map<Integer, String> map = new HashMap();
map.put(1, "Java");
map.put(2, "JDK");
map.put(3, "Spring Framework");
map.put(4, "MyBatis framework");
map.put(5, "Java中文社群");
// 遍历
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
}
4.ForEach KeySet
public class HashMapTest {
public static void main(String[] args) {
// 创建并赋值 HashMap
Map<Integer, String> map = new HashMap();
map.put(1, "Java");
map.put(2, "JDK");
map.put(3, "Spring Framework");
map.put(4, "MyBatis framework");
map.put(5, "Java中文社群");
// 遍历
for (Integer key : map.keySet()) {
System.out.println(key);
System.out.println(map.get(key));
}
}
}
5.Lambda
public class HashMapTest {
public static void main(String[] args) {
// 创建并赋值 HashMap
Map<Integer, String> map = new HashMap();
map.put(1, "Java");
map.put(2, "JDK");
map.put(3, "Spring Framework");
map.put(4, "MyBatis framework");
map.put(5, "Java中文社群");
// 遍历
map.forEach((key, value) -> {
System.out.println(key);
System.out.println(value);
});
}
}
6.Streams API 单线程
public class HashMapTest {
public static void main(String[] args) {
// 创建并赋值 HashMap
Map<Integer, String> map = new HashMap();
map.put(1, "Java");
map.put(2, "JDK");
map.put(3, "Spring Framework");
map.put(4, "MyBatis framework");
map.put(5, "Java中文社群");
// 遍历
map.entrySet().stream().forEach((entry) -> {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
});
}
}
7.Streams API 多线程
public class HashMapTest {
public static void main(String[] args) {
// 创建并赋值 HashMap
Map<Integer, String> map = new HashMap();
map.put(1, "Java");
map.put(2, "JDK");
map.put(3, "Spring Framework");
map.put(4, "MyBatis framework");
map.put(5, "Java中文社群");
// 遍历
map.entrySet().parallelStream().forEach((entry) -> {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
});
}
}