map集合遍历的五种方式
- 使用for遍历时删除map集合中的内容时,会报异常,使用iterator遍历时删除map集合中的内容不会报异常
package part1.mapeach;
import java.lang.reflect.Array;
import java.util.*;
/**
* ClassName: Maptest
* Description: mao集合遍历的几种方式
*/
public class Maptest {
public static void main(String[] args) {
//使用for遍历时删除map集合中的内容时,会报异常,使用iterator遍历时删除map集合中的内容不会报异常
Map<Integer,String> map=new HashMap<>();
for (int i = 0; i < 10; i++) {
map.put(i+1,"value"+(i+1));
}
System.out.println("遍历方式1: keySet()");
//map遍历方式1: keySet()
for (Integer key : map.keySet()) {
String value=map.get(key);
System.out.println("key="+key+" ; value="+value);
}
System.out.println("遍历方式2: values()");
//map遍历方式2: values()
List<String> values=new ArrayList<>();
for (String value : map.values()) {
values.add(value);
}
System.out.println(values.toString());
System.out.println("第三种方式 : entrySet()");
//map遍历方式3: values()
for (Map.Entry<Integer, String> entry : map.entrySet()) {
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println("key="+key+" ; value="+value);
}
System.out.println("第四种 : 通过迭代器遍历map集合");
//map遍历方式4 : 迭代器
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<Integer, String> entry = iterator.next();
System.out.println("key="+entry.getKey()+" ; value="+entry.getValue());
}
System.out.println("第五种 : 使用lambda表达式遍历");
//map遍历方式5 : lambda表达式
map.forEach((k,v)-> System.out.println("key="+k+" ; value="+v));
}
}