![](/img/trans.png)
[英]Counting the number of times an element occurs in a given column for a 2D array?
[英]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
。
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.