定义一个一维数组并初始化,计算数字出现的次数

我写的代码如下,不知道怎么改

public static void main(String[] args) {
    int []number={1,2,3,2,3,3,3,4,5};
    int times=0;
    for(int i=0;i<number.length;i++){
       System.out.println(number[i]);
       for(int j=0;j<number.length;j++){
         if(number[i]==number[j]){
           System.out.println(number[i]+" + "+number[j]);
           times=times+1;
       }
       }
    }
    }
public static void main(String[] args) {
        int []number={1,2,3,2,3,3,3,4,5};
        Map<Integer, Integer> count = new HashMap<>();
        for (int i : number) {
            Integer c = count.get(i);
            count.put(i, c == null ? 1 : c + 1);
        }
        count.forEach((k, v) -> System.out.println("数字[" + k + "]出现的次数为:" + v));
    }

输出为:

数字[1]出现的次数为:1
数字[2]出现的次数为:2
数字[3]出现的次数为:4
数字[4]出现的次数为:1
数字[5]出现的次数为:1

希望对你有帮助

可以换一种思路,就是用一个数组,每个元素存储对应下标的数的出现次数,累计时直接将对应下标的元素累计即可。
即0下标的元素存储0出现的次数,1,存储1出现的次数,依次类推,遍历累加代码如下:

public static void main(String[] args) {
        int []number={1,2,3,2,3,3,3,4,5};
        int [] counts = new int[10];
        for(int i=0;i<number.length;i++){
            int temp = number[i];
            counts [temp] +=1;
        }

        for(int i=0;i<counts.length;i++){
            System.out.println("number "+i+", appear count is:"+counts[i]);
        }
    }

运行结果:

number 0, appear count is:0
number 1, appear count is:1
number 2, appear count is:2
number 3, appear count is:4
number 4, appear count is:1
number 5, appear count is:1
number 6, appear count is:0
number 7, appear count is:0
number 8, appear count is:0
number 9, appear count is:0