题解 | #记票统计#

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里的集合

全部评论

相关推荐

今年读完研的我无房无车无对象,月入还没有过万&nbsp;看到他在朋友圈晒房产证,感叹自己白读了这么多年书
梦想是成为七海千秋:那咋了,双9毕业的现在还没存款呢(因为没念完),高中毕业的去直播带货月入几百万也是完全有可能的,退一万步讲,有些人刚出生父母就给买车买房了,上哪说理去,哪怕是同一个起点也会有截然不同的走向,过好自己的生活就完事了。
点赞 评论 收藏
分享
qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
秋盈丶:后续:我在宿舍群里和大学同学分享了这事儿,我好兄弟气不过把他挂到某脉上了,10w+阅读量几百条评论,直接干成精品贴子,爽
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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