Map集合的题目总结

Map集合的题目总结

1.定义一个泛型为String类型的List集合,统计该集合中每个字符(注意,不是字符串)出现的次数。

代码如下:

 public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        Collections.addAll(list, "abcd", "cdef", "a");

        String s = list.get(0) + list.get(1) + list.get(2);

        method(s);
    }

    public static void method(String s) {
        HashMap<Character,Integer> map = new HashMap<>();

        for (char c : s.toCharArray()) {
           map.put(c,map.containsKey(c)?map.get(c)+1:1);
        }

        Set<Character> chs = map.keySet();
        List list = new ArrayList(chs);
        char lastKey = (char) list.get((list.size() - 1));

        for (Map.Entry<Character, Integer> entry : map.entrySet()) {
            char key = entry.getKey();
            int value = entry.getValue();

            if(key == lastKey){
                System.out.print(key+"="+value);
                break;
            }
            System.out.print(key+"="+value+",");
        }
    }
运行结果:

在这里插入图片描述

2.利用Map,完成下面的功能:从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。

3.在原有世界杯Map 的基础上,增加如下功能: 读入一支球队的名字,输出该球队夺冠的年份列表。 例如: 读入“巴西”,应当输出 1958 1962 1970 1994 2002 读入“荷兰”,应当输出 没有获得过世界杯

代码如下:
 public static void main(String[] args) {
        Map<String,String> m1 = new HashMap<>();
        m1.put("1930", "乌拉圭");
        m1.put("1934", "意大利");
        m1.put("1938", "意大利");
        m1.put("1950", "乌拉圭");
        m1.put("1954", "西德");
        m1.put("1958", "巴西");
        m1.put("1962", "巴西");
        m1.put("1966", "英格兰");
        m1.put("1970", "巴西");
        m1.put("1974", "西德");
        m1.put("1978", "阿根廷");
        m1.put("1982", "意大利");
        m1.put("1986", "阿根廷");
        m1.put("1990", "西德");
        m1.put("1994", "巴西");
        m1.put("1998", "法国");
        m1.put("2002", "巴西");
        m1.put("2006", "意大利");
        m1.put("2010", "西班牙");
        m1.put("2014", "德国");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份");
        String str = sc.nextLine();
        if(m1.containsKey(str)==false)
        {
            System.out.println(str+"年没有举办世界杯");
        }
        else
        {
            System.out.println(str+"年的夺冠球队是:"+m1.get(str));
        }

        Scanner sc1 = new Scanner(System.in);
        System.out.println("请输入夺冠球队");
        String str1 = sc1.nextLine();
        if(m1.containsValue(str1)==false)
        {
            System.out.println(str1+"队没有获得过冠军");
        }
        else
        {
            System.out.println(str1+"队的夺冠年份是:");
            for(String k :m1.keySet())
            {
                if(m1.get(k).equals(str1))
                {
                    System.out.print(" "+k);
                }
            }

        }


    }
运行结果:

在这里插入图片描述

谢谢大家!!!!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值