Map的遍历方式:①键找值 ②键值对 ③Lambda表达式
1.键找值:
代码演示:
package mymapdemo;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDemo2 {
public static void main(String[] args) {
//Map集合的第一种遍历方式
//1.创建Map集合的对象
Map<String,String> m=new HashMap<>();
//2.添加元素
m.put("顾飞","蒋丞");
m.put("贺朝","谢俞");
m.put("江添","盛望");
//3.通过键找值
//3.1获取所有的键,把这些键放到一个单列集合当中
Set<String> keys=m.keySet();
//3.2遍历每一个单列集合,得到每一个键
for (String key : keys) {
//key是每一个键
//3.3利用键获取每一个值
String value = m.get(key);
System.out.println(key+"="+value);
}
}
}
运行结果:
2.键值对:
代码演示:
package mymapdemo;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDemo3 {
public static void main(String[] args) {
//Map集合的第二种遍历方式
//1.创建Map集合的对象
Map<String,String> m=new HashMap<>();
//2.添加元素
m.put("顾飞","蒋丞");
m.put("贺朝","谢俞");
m.put("江添","盛望");
//3.通过键值对对象进行遍历
//3.1通过一个方法获取所有的键值对对象,返回一个Set集合
Set<Map.Entry<String, String>> entries = m.entrySet();
//3.2遍历entries这个集合,去得到里面的每一个键值对对象
for (Map.Entry<String, String> entry : entries) {
//entry一次表示里面的每一个键值对对象
//3.3利用entry调用get方法获取值和键
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"="+value);
}
}
}
运行结果:
3.Lambda表达式:
方法:
default void forEach(BiConsumer<? super K, ? super V> action)--->结合Lambda遍历Map集合
代码演示:
package mymapdemo;
import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;
public class MapDemo4 {
public static void main(String[] args) {
//Map集合的第三种遍历方式
//1.创建Map集合的对象
Map<String,String> m=new HashMap<>();
//2.添加元素
m.put("顾飞","蒋丞");
m.put("贺朝","谢俞");
m.put("江添","盛望");
//3.利用Lambda表达式遍历
//方法的底层就是利用第二种方式进行遍历,一次得到每一个键和值
//再调用accept方法
m.forEach(new BiConsumer<String, String>() {
@Override
public void accept(String key, String value) {
System.out.println(key+"="+value);
}
});
System.out.println("--------------");
m.forEach(( key, value) -> System.out.println(key+"="+value));
}
}
运行结果: