java 集合Map循环遍历的几种方法
程序员文章站
2024-02-17 12:25:34
...
在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方式去遍历。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class MapTest {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>(4);
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
map.put("4", "d");
/**
* 方法一:在for循环中使用entries实现Map的遍历:
* * 最常见也是大多数情况下用的最多的,一般在键值对都需要使用
* */
for (Map.Entry<String,String> entry:map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+":"+value);
}
/**
* 方法二:在for循环中遍历key或者values,
* 一般适用于只需要map中的key或者value时使用,在性能上比使用entrySet较好;
*/
for (String key:map.keySet()) {
System.out.print(key);
}
for (String value:map.values()) {
System.out.println(value);
}
/**
* 方法三:通过Iterator遍历;
*/
Iterator<Map.Entry<String,String>> entries = map.entrySet().iterator();
while (entries.hasNext()){
Map.Entry<String, String> entry = entries.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+":"+value);
}
/**
* 方法四:通过键找值遍历,这种方式的效率比较低,因为本身从键取值是耗时的操作;
*/
for(String key : map.keySet()){
String value = map.get(key);
System.out.println(key+":"+value);
}
/**
* 方法五 map.forEach JDK1.8 新特性
*/
map.forEach((key,value)->{
System.out.println("key"+key+",value"+value);
});
}
}
上一篇: 求解密解决方案
下一篇: Java中遍历Map对象的几种方法