第十三节:第三部分:集合框架:Map集合的遍历方式
Map集合的遍历方式
Map集合的遍历方式一:键找值
Map集合的遍历方式二:键值对
Map集合的遍历方式三:Lambda
代码:
代码一:掌握Map集合的遍历方式1:键找值
package com.itheima.day25_MapTraverse;import java.util.HashMap;
import java.util.Map;
import java.util.Set;//目标:掌握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.0);map.put("紫霞",165.8);map.put("至尊宝",169.5);map.put("牛魔王",183.6);System.out.println(map);//{蜘蛛精=169.0, 牛魔王=183.6, 至尊宝=169.5, 紫霞=165.8}//1、获取Map集合的全部键Set<String> keys = map.keySet();System.out.println(keys);//[蜘蛛精, 牛魔王, 至尊宝, 紫霞]//2、遍历全部的键,根据键获取其对应的值for (String key : keys) {//根据键获取对应的值Double value = map.get(key);System.out.println(key + "====>" + value);}}
}
代码二:掌握Map集合的第二种遍历方式:键值对
package com.itheima.day25_MapTraverse;import java.util.HashMap;
import java.util.Map;
import java.util.Set;
//目标:掌握Map集合的第二种遍历方式:键值对。
public class MapTest2 {public static void main(String[] args) {// 准备一个Map集合。Map<String,Double> map =new HashMap<>();map.put("蜘蛛精",162.5);map.put("蜘蛛精",169.0);map.put("紫霞",165.8);map.put("至尊宝",169.5);map.put("牛魔王",183.6);System.out.println(map);//{蜘蛛精=169.0, 牛魔王=183.6, 至尊宝=169.5, 紫霞=165.8}// map ={蜘蛛精=169.8,牛魔王=183.6,至尊宝=169.5,紫霞=165.8}// entries =[(蜘蛛精=169.8),(牛魔王=183.6),(至尊宝=169.5),(紫霞=165.8)]// 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);}}
}
代码三:掌握Map集合的第三种遍历方式:Lambda
package com.itheima.day25_MapTraverse;import java.util.HashMap;
import java.util.Map;public class MapTest3 {public static void main(String[] args) {// 准备一个Map集合。Map<String,Double> map =new HashMap<>();map.put("蜘蛛精",162.5);map.put("蜘蛛精",169.0);map.put("紫霞",165.8);map.put("至尊宝",169.5);map.put("牛魔王",183.6);System.out.println(map);//{蜘蛛精=169.0, 牛魔王=183.6, 至尊宝=169.5, 紫霞=165.8}// map ={蜘蛛精=169.8,牛魔王=183.6,至尊宝=169.5,紫霞=165.8}map.forEach((k,v)->{System.out.println(k+"====>"+v);});}
}
代码四:完成Map集合的案例:统计投票人数
案例分析
代码:
package com.itheima.day25_MapTraverse;import java.util.*;//目标:完成Map集合的案例:统计投票人数。
public class MapDemo {public static void main(String[] args) {// 1、把80个学生选择的景点数据拿到程序中来。List<String> data = new ArrayList<>();String[] selects = {"A","B","C","D"};Random random = new Random();for (int i = 0; i < 80; i++) {//每次模拟一个学生选择一个景点,存入到集合中去int index = random.nextInt(4);//0,1,2,3data.add(selects[index]);}System.out.println(data);// 2、开始统计每个景点的投票人数//准备一个Map集合用于统计最终的结果Map<String,Integer> result = new HashMap<>();//3、开始遍历80个景点数据for (String s : data) {//问问Map集合中是否存在该景点if (result.containsKey(s)) {// 说明这个景点之前统计过。其值+1.存入到Map集合中去result.put(s,result.get(s)+1);}else {// 说明这个景点是第一次统计,存入"景点=1result.put(s,1);}}System.out.println(result);}
}