题解 | #记票统计#

import java.util.Scanner;
import java.util.LinkedHashMap;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //这个是默认输入顺序的键值对集合,HashMap是无序的
        LinkedHashMap<String, Integer> map = new LinkedHashMap<String, Integer>();
        while (in.hasNextInt()) {
            int nnum = in.nextInt();
            in.nextLine();
            String name = in.nextLine(); //候选人
            int tnum = in.nextInt();
            in.nextLine();
            String tname = in.nextLine(); //候选人的票

            String[] ary = name.split(" ");
            for (String str : ary) {
                map.put(str, 0);//把所有获选人加入map,赋值0
            }

            String[] tary = tname.split(" ");
            int invalid = 0;
            for (int i = 0; i < tary.length; i++) {
                String tempname = tary[i];
                if (map.containsKey(tempname)) {//是候选人就票数+1
                    map.put(tempname, map.get(tempname) + 1);
                } else {
                    invalid++;//不是就+1
                }
            }
            //输出
            for (String key : map.keySet()) {
                int value = map.get(key);
                System.out.println(key + " : " + value);

            }
            System.out.println("Invalid : "+invalid);
        }
    }
}

主要是用到LinkedHashMap集合,这个集合就是不改变加入集合元素的相对位置,按照题目要求需要"按照输入的顺序"输出,用LinkedHashMap既能不变序,也能记录累计票数,要多学会用java里的集合

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 19:30
化身华黑&nbsp;今天询问对接人审批情况,结果被告知没HC了&nbsp;云计算&nbsp;
苦闷的柠檬精allin实习:主管面结束后hr每周保温一次,结果前几天和我说没hc了,我也化身华黑子了
投递华为等公司9个岗位 > 华为求职进展汇总
点赞 评论 收藏
分享
06-06 03:40
已编辑
电子科技大学 Java
在秋招的小白菜很想养修勾:一眼 苍穹外卖+谷粒商城,项目换一换吧,可以找一些付费知识星球博主带带,避免烂大街。多投投大厂,背背八股,你这学历乱杀了,等实习经验到位,到时候大厂闭眼选
投递美团等公司10个岗位
点赞 评论 收藏
分享
Cherrycola01:0实习 0项目 约等于啥也没有啊 哥们儿这简历认真的吗
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务