JAVA之集合嵌套的基础应用

描述:

某个班级多名学生,现在需要去春游,班长提供了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<String>> data=new HashMap<>();//HashMap 无序
        //把学生选择的数据存入进去
        List<String> list=new ArrayList<>();//新建一个集合存储选择
        Collections.addAll(list,"A","C");//将新建集合设为 键 ,并存入值
        data.put("张三",list);//将数据插入data集合中去,键为学生姓名,值为新建集合存入的值

        List<String> list2=new ArrayList<>();
        Collections.addAll(list2,"B","C");//将新建集合设为 键 ,并存入值
        data.put("李四",list2);//将数据插入data集合中去,键为学生姓名,值为新建集合存入的值

        List<String> list3=new ArrayList<>();
        Collections.addAll(list3,"A","B","C","D");//将新建集合设为 键 ,并存入值
        data.put("王五",list3);//将数据插入data集合中去,键为学生姓名,值为新建集合存入的值

        System.out.println(data);
        //统计每个景点选择的人数
        Map<String,Integer> map=new HashMap<>();
        //遍历,提取所有人选择的景点的信息
        Collection<List<String>> values=data.values();//取data集合中的所有的值 存入values集合
        //valuse=  {[B, C],[A, C],[A, B, C, D]}

        for(List<String> 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);
    }
}

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遇安.YuAn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值