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);
}
}