> 文档中心 > 集合嵌套的基础应用

集合嵌套的基础应用

描述:

某个班级多名学生,现在需要去春游,班长提供了A,B,C,D四个景点,每个学生可以选择多个景点,请统计最终哪个景点想去的人最多。

import java.util.*;//集合嵌套//某个班级多名学生,现在需要组成春游活动,班长提供了A,B,C,D四个景点,每个学生可以选择多个景点,请统计出最终哪个景点想去的人最多public class collection_5qiantao {    public static void main(String[] args) { //使用一个Map集合存储 Map<String ,List> data=new HashMap();//HashMap 无序 //把学生选择的数据存入进去 List list=new ArrayList();//新建一个集合存储选择 Collections.addAll(list,"A","C");//将新建集合设为 键 ,并存入值 data.put("张三",list);//将数据插入data集合中去,键为学生姓名,值为新建集合存入的值 List list2=new ArrayList(); Collections.addAll(list2,"B","C");//将新建集合设为 键 ,并存入值 data.put("李四",list2);//将数据插入data集合中去,键为学生姓名,值为新建集合存入的值 List list3=new ArrayList(); Collections.addAll(list3,"A","B","C","D");//将新建集合设为 键 ,并存入值 data.put("王五",list3);//将数据插入data集合中去,键为学生姓名,值为新建集合存入的值 System.out.println(data); //统计每个景点选择的人数 Map map=new HashMap(); //遍历,提取所有人选择的景点的信息 Collection<List> values=data.values();//取data集合中的所有的值 存入values集合 //valuse=  {[B, C],[A, C],[A, B, C, D]} for(List value:values){//value指向的为[B,C]或[A,C],[A,B,C,D]的集合,所以需要再次遍历     for(String s:value){//这个时候取的便是[A,B,C,D]里的A,B,C,D  //判断有没有包含这个景点  if(map.containsKey(s)){//之前出现过这个键      map.put(s,map.get(s)+1);//重新存进去,并把原来的值取出来+1  }else{//键是第一次出现      map.put(s,1);//给键赋值为1  }     } } System.out.println(map);    }}