嵌套循环重要案例, 多景点统计

public class MapTest {
public static void main(String[] args) {

//================统计票数案例======================
//统计多个同学去景点 , 可多选景点A B C D
HashMap<String, List<String>> str = new HashMap<>();

List<String> v1 = new ArrayList<>();
Collections.addAll(v1,"A","C");
str.put("小王", v1);

List<String> v2 = new ArrayList<>();
Collections.addAll(v2,"A","B","D");
str.put("小明", v2);

List<String> v3 = new ArrayList<>();
Collections.addAll(v3,"C","D");
str.put("小洋", v3);

System.out.println(str);

//3. 统计每个景点选择的人数
HashMap<String, Integer> infos = new HashMap<>();


//4. 提取所有人选择的景点信息
Collection<List<String>> values = str.values();// Collection方法 来取得所有key的 value
System.out.println(values);

//这里外层循环是 实质是[[A, B, D], [A, C], [C, D]]
// 遍历这个大数组
for (List<String> value :values) {
//内层循环是循环更里面的String值
for (String s :value) {
if (infos.containsKey(s)){// 判断是否出现过
infos.put(s,infos.get(s)+1);//再次出现就覆盖
}else{
infos.put(s,1);//第一次出现就put
}
}
}
System.out.println(infos);

}
}

posted on 2022-03-24 00:29  我要当程序源  阅读(39)  评论(0)    收藏  举报

导航