统计数字出现的次数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25652949/article/details/89335238

在论坛上看到这么一个题

JAVA题,要求任意输入20个10以内的整数,并判断输出每个数字的出现次数并输出。

这个题也可以转化为:长度为n(n<=1000)的整数,输出每个数字出现的次数。

上面两个题意思相同,每个数字范围只有[0,9],所以我的思路就是初始定义长度为10的数组

int[] a = new int[10];

其中 a的下标就表示这个大整数里出现的每个数字,a[0]表示0出现的次数,a[1]表示1出现的次数
这样循环对该大数的每位数作统计就好了,0就对a[0]加1,1就对a[1]加1…9就对a[9]加1.
这个的代码就不放了,我也没写。

但后面我又想到了既然在用java,何不用java的优势利用HashMap来做一下?key来存出现的数字,对应的value来存该数字出现的次数,这样岂不也是美滋滋?
hashmap做的代码

public static void main(String[] args) {
        HashMap<Integer,Integer> map = new HashMap<>();
        Scanner in = new Scanner(System.in);
        //这是20个整数的做法
        //如果是个长整数就需要字符串存储这个大整数,key就存charAt(i)了
        for(int i=0;i<20;i++){
            int a = in.nextInt();
            if(map.containsKey(a)){
                map.put(a,map.get(a)+1);
            }else{
                map.put(a,1);
            }
        }
        for (HashMap.Entry<Integer, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " 出现了 " + entry.getValue() + "次");
        }
    }

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_25652949/article/details/89335238
今日推荐