繁体   English   中英

计算数组中出现int的次数(Java)

[英]Counting number of times an int occurs in an array (Java)

我想要的OCCURENCES数量计数int S,一到六个包容性,在大小6我想与一个int出现在每个指标的次数返回数组的数组,但有一个索引零。
例:

输入[3,2,1,4,5,1,3]
预期产出[2,1,2,1,1,0]

问题:
它输出[1,1,3,0,1,0] ,代码摘录如下。 我怎样才能解决这个问题? 我找不到我错的地方。

public static int arrayCount(int[] array, int item) {
    int amt = 0;
    for (int i = 0; i < array.length; i++) {
        if (array[i] == item) {
            amt++;
        }
    }
    return amt;
}

public int[] countNumOfEachScore(){
    int[] scores = new int[6];
    int[] counts = new int[6];
    for (int i = 0; i < 6; i++){
        scores[i] = dice[i].getValue();
    }
    for (int j = 0; j < 6; j++){
        counts[j] = arrayCount(scores, j+1);
    }
    return counts;
}

dice []只是一个Die对象数组,它有一个方法getValue(),它返回一个介于1和6之间的int,包括1和6。 counts []是内容错误的int数组。

编写另一个代码而不是调试你的代码会更快。

public static int[] count(int[] array) {
    int[] result = new int[6];
    for (int i = 0; i < array.length; i++) {
        try{
            result[array[i]-1]++;
        } catch (IndexOutOfBoundsException e) {
            throw new IllegalArgumentException("The numbers must be between 1 and 6. Was " + String.valueOf(array[i]));
        }
    }
    return result;
}

以上将导致6个int的数组。 i TH结果阵列中的数量将存储的出现次数的数目i+1

OP的PoC
在此输入图像描述

public static void main(String [] args){
        int []ar=new int[]{3,2,1,4,5,1,3};
        System.out.println(Arrays.toString(counter(ar)));

    }


public static int[] counter(int []ar){
        int []result=new int [6];
        for(int i=0;i<ar.length;i++){
            int c=0;
            for(int j=0;j<ar.length;j++){
                if(j<i && ar[i]==ar[j])
                    break;
                if(ar[i]==ar[j])
                    c++;
                if(j==ar.length-1){
                    result[i]=c;
                }
            }
        }
        return result;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM