Map集合遍历方式
方式一:
/**
* 目标:掌握Map集合的遍历方式1:键找值
*/
public class MapTest1 {
public static void main(String[] args) {
// 准备一个Map集合。
Map<String, Double> map = new HashMap<>();
map.put("张三", 162.5);
map.put("李四", 169.8);
map.put("王五", 165.8);
map.put("赵六", 169.5);
System.out.println(map);
// 1、获取Map集合的全部键
Set<String> keys = map.keySet();
// System.out.println(keys);
// key
// 2、遍历全部的键,根据键获取其对应的值
for (String key : keys) {
// 根据键获取对应的值
double value = map.get(key);
System.out.println(key + "=====>" + value);
}
}
}
方式二:
Map集合的第二种方式,是直接获取每一个Entry对象,把Entry存储扫Set集合中去,再通过Entry对象获取键和值。
/**
* 目标:掌握Map集合的第二种遍历方式:键值对。
*/
public class MapTest2 {
public static void main(String[] args) {
Map<String, Double> map = new HashMap<>();
map.put("张三", 162.5);
map.put("李四", 169.8);
map.put("王五", 165.8);
map.put("赵六", 169.5);
System.out.println(map);
// 1、调用Map集合提供entrySet方法,把Map集合转换成键值对类型的Set集合
Set<Map.Entry<String, Double>> entries = map.entrySet();
for (Map.Entry<String, Double> entry : entries) {
String key = entry.getKey();
double value = entry.getValue();
System.out.println(key + "---->" + value);
}
}
}
方式三:
JDK8以后,可以使用foreach遍历map集合,调用起来非常简单,最好是结合的lambda表达式一起使用
/**
* 目标:掌握Map集合的第二种遍历方式:键值对。
*/
public class MapTest3 {
public static void main(String[] args) {
Map<String, Double> map = new HashMap<>();
map.put("张三", 162.5);
map.put("李四", 169.8);
map.put("王五", 165.8);
map.put("赵六", 169.5);
System.out.println(map);
//遍历map集合,传递匿名内部类
map.forEach(new BiConsumer<String, Double>() {
@Override
public void accept(String k, Double v) {
System.out.println(k + "---->" + v);
}
});
//遍历map集合,传递Lambda表达式
map.forEach(( k, v) -> {
System.out.println(k + "---->" + v);
});
}
}