Map集合的遍历方式
方式一:键找值
遍历方式二:键值对
遍历方式三:Lambda表达式
Map集合的常见案例
需求
- 某个班级80名学生,现在需要组织秋游活动,班长提供了四个景点依次是(A、B、C、D),每个学生只能选择一个景点,请统计出最终哪个景点想去的人数最多。
- 分析
- 将80个学生选择的数据拿到程序中去,[A,A,B,A, B,C, D,…]
- 准备一个Map集合用于存储统计的结果,Map<String,Integer>,键是景点,值代表投票数量。
- 遍历80个学生选择的景点,每遍历一个景点,就看Map集合中是否存在该景点,不存在存入“景点=1“存在则其对应值+1。
import java.util.*;
public class MapDemo {
public static void main(String[] args) {
//1.把80个学生选择的景点数据拿到程序中去
List<String> data = new ArrayList<>();
String[] selects = {"A","B","C","D"};
//随机80次数据用来当作学生选择的数据
Random r =new Random();
for (int i = 1; i <=80; i++) {
//每次模拟一个学生选择一个景点,存入到集合中去
int index = r.nextInt(4);//0 1 2 3 包前不包后
data.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 {
//说明这个景点之前没有存在过,是第一次统计,存入:“景点=1”
result.put(s,1);
}
}
System.out.println(result);
}
}