java - 计算 2D 数组输出的频率并将其分配给 1D 数组

标签 java arrays 2d

需要将每个数字出现的频率放入一维数组中并输出结果。 2D 到 1D 的部分让我很困惑,我对数组还不太适应。

public static void main( String[] args ){

  int matrix [][]=new int[20][2];

  for (int row=0;row<matrix.length;row++){
    for (int column=0;column<matrix[row].length;column++)
      matrix[row][column]=(int)(Math.random()*12+1);

  }
   frequency(matrix);




public static int frequency(int [][] matrix){
   int [] nums =[12];
   int count =0;
   for (int i=0;i<matrix.length;i++){
      for (int j=0; j<matrix[i].length;j++)
            (???)

       }
   return (?);

最佳答案

我猜是这样的:

public static int[] frequency(int [][] matrix){
    int [] nums =[14];      // max value can be 13 so you need 14 element
    int count =0;
    for (int i=0;i<matrix.length;i++){
        for (int j=0; j<matrix[i].length;j++) {
            nums[matrix[i][j]] += 1;
        }
    }
    return nums;
}

这是一个有点人为的示例,因为通常要收集的值不能很好地落在数组索引上,因此 HashMap 将是更典型的解决方案。

实际上,乘以 2 个随机数(如 Math.random()*Math.random() + 1 )来填充矩阵会更有趣,然后你会在最终的结果中得到一个漂亮的钟形曲线,而不是无聊的白噪声频率分布。

关于java - 计算 2D 数组输出的频率并将其分配给 1D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3081036/

相关文章:

java - 带集合的 Groovy 标识符

arrays - 填充 UITableViewController

Android 将一个位图围绕另一个位图旋转

java - 为什么 ExecutorService 从类加载器线程启动时不处理提交的任务?

java - Intellij 2016.3.2 不断将 String 导入更改为 com.sun.org.apache.xpath.internal.operations.String

java - 使用子类异常实现接口(interface)

javascript - Javascript 原型(prototype)继承中数组和数字数据类型之间有区别吗?

java - 如何从数组或列表中删除两个元素的序列?

c# - XNA C# 创建平视显示器

python - 交换二维列表的列