javase9-2 map集合的嵌套

1、集合嵌套—案例引入

在这里插入图片描述
这里80就整成4个就行,不用太多。

package com.itheima.d3_map;

import java.util.*;

public class MapQianTao {

    public static void main(String[] args) {
        /**
         * 1、先把学生的数据拿进程序来
         * 分析:学生的名字作为键,学生的选择因为是多个,那就用list集合来存
         */
        Map<String, List<String>> select = new HashMap<>();

        //2、存数据
        List<String> list1 = new ArrayList<>();
        Collections.addAll(list1,"A","B","C");
        select.put("张三",list1);

        List<String> list2 = new ArrayList<>();
        Collections.addAll(list2,"A","C","D");
        select.put("李四",list2);

        List<String> list3 = new ArrayList<>();
        Collections.addAll(list3,"B","D","E");
        select.put("王5",list3);

        System.out.println(select); //{李四=[A, C, D], 张三=[A, B, C], 王5=[B, D, E]}

        //3、生成装结果的集合
        Map<String, Integer> map = new HashMap<>();

        //4、遍历数据 --键值对遍历
        Set<Map.Entry<String,List<String>>> set = select.entrySet();
        for (Map.Entry<String, List<String>> stringListEntry : set) {
            List<String> l1 = stringListEntry.getValue();
            //遍历每个成员的选择,每个成员的选择是结果的键
            for (String s : l1) {
                if(map.containsKey(s)){
                    map.put(s, map.get(s)+1);// 因为集合不重复, 后面的重复的键会覆盖掉前面的
                }else {
                    map.put(s,1);
                }

            }
        }
        //5、输出map
        System.out.println(map); //{A=2, B=2, C=2, D=2, E=1}

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值