java - 使用 int[] 数组通过嵌套循环相互操作

标签 java arrays

我想做的是使用一种方法生成 0-15 之间的 30 个随机数,然后使用另一种方法计算每个数字打印的次数并将其放入第二个数组中。第二个数组中的每个位置都对应于数组中的数字。如果 i = [0] 并且 0 出现了 3 次,它应该是 3 等等。

到目前为止,我已经明白了。似乎正在发生的是它计算 15 出现的次数(数组的最后一个数字)。虽然我可能是错的。我不明白我做错了什么。我的逻辑一定有问题。

import java.util.Arrays;

public class FrequencyOfNumbers {

    public static void main(String[]args){
        System.out.println(Arrays.toString(randomNums()));
        System.out.println(Arrays.toString(sortedNums(randomNums())));
    }

    public static int[] randomNums (){
        int[] random = new int[30];
        for(int i=0;i<random.length;i++){
           double randNum = Math.random() * 16;
            random[i] = (int)randNum;
        }
        return random;
    }

    public static int[] sortedNums(int[] sort){
        int[] numVals = new int[15];
        for(int i=0;i<numVals.length;i++)
        {
            for(int j=0;j<sort.length;j++)
            {
                if(sort[j] == numVals[i])
                {
                    numVals[i]++;
                }
            }
        }
        return numVals;
    }
}

我收到的示例输出:

[5, 15, 0, 5, 4, 10, 4, 11, 5, 13, 13, 8, 9, 9, 10, 6, 0, 9, 10, 12, 3, 7, 4, 9, 4, 11, 9, 15, 10, 7]

[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]

最佳答案

要计算集合中某个对象的实例数,您可以使用 Collections.frequency():

ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < sort.length; i++) {
    list.add(sort[i]);
}

for(int i = 0; i< numVals.length;i++){
    numVals[i] = Collections.frequency(list, i);
}
return numVals;

关于java - 使用 int[] 数组通过嵌套循环相互操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40441794/

相关文章:

java - Spring 数据 : Method with annotation @Query doesn't work as expected

java - 使用 bundle 传递多个数组

Javascript - 无法获得要警报的数组的平均值

ios - 附加带有计算的纬度和经度的 Json 数组

c# - 超出范围异常二维数组到列表类型 Int

java - JFrame 中的两个 JPanel,一个在另一个下

java - 为什么/如何将整数设置为 -1 使我的 while 循环工作?

arrays - SystemVerilog 中的索引操作对整数类型有何作用?

java - DateTimeParseException : fails on one host, 适用于另一个相同的 JDK

python - python2中numpy的切片操作