【问题标题】:Java Initialise Multidimensional Array with Random IntegersJava用随机整数初始化多维数组
【发布时间】:2011-03-08 23:34:36
【问题描述】:

我希望用 0 到 100(含)之间的随机数初始化一个多维数组。我能够在每个字段中创建具有空值的多维数组,然后能够将 100 个随机数添加到可用位置。

但是,我想知道是否有一种方法可以用随机自然整数初始化多维数组。例如,我希望这样做:

double[][] array = new double[][] {{0, 1, 2} , {1, 0, 3} , {2, 3, 0}};

这可能吗?我的想法是这样的:

double[][] array = new double[][] {{random values go here},{random values go here}};

有什么建议吗?

感谢大家花时间阅读。

米克

【问题讨论】:

  • 您是希望只生成一次随机数,还是应该在每次运行时生成一组新的随机数?
  • 嗨,Kevin,我希望在每次运行时生成一组新的随机数。

标签: java arrays multidimensional-array


【解决方案1】:

创建数组,然后在 for 循环中对其进行初始化。 Random.nextInt(n) 为您提供所需的一切。

这是一个包含三个不同运行的示例代码。

import java.util.*;
class Init { 
    public static void main( String ... args ) { 

        Random random = new Random();

        double[][] array = new double[10][10];

        for( int i = 0 ; i < array.length ; i++ ) { 
           for ( int j = 0 ; j < array[i].length ; j++ ) { 
              array[i][j] = random.nextInt(101);
           }
        }

        for( double[] a : array ) { 
            System.out.println( Arrays.toString( a ));
        }
    }
}

输出:

C:\Users\oreyes\langs\java>java Init
[2.0, 92.0, 31.0, 98.0, 3.0, 5.0, 57.0, 41.0, 29.0, 89.0]
[54.0, 57.0, 68.0, 92.0, 11.0, 20.0, 14.0, 58.0, 84.0, 23.0]
[48.0, 14.0, 9.0, 33.0, 9.0, 27.0, 74.0, 34.0, 85.0, 91.0]
[51.0, 87.0, 2.0, 96.0, 52.0, 81.0, 91.0, 95.0, 19.0, 56.0]
[15.0, 90.0, 9.0, 85.0, 51.0, 23.0, 35.0, 21.0, 78.0, 14.0]
[23.0, 20.0, 57.0, 94.0, 69.0, 99.0, 90.0, 78.0, 61.0, 38.0]
[35.0, 61.0, 81.0, 72.0, 3.0, 93.0, 20.0, 96.0, 9.0, 35.0]
[90.0, 100.0, 98.0, 14.0, 95.0, 75.0, 96.0, 8.0, 87.0, 25.0]
[14.0, 41.0, 27.0, 57.0, 32.0, 37.0, 69.0, 61.0, 5.0, 42.0]
[57.0, 0.0, 85.0, 28.0, 78.0, 47.0, 89.0, 54.0, 50.0, 59.0]

C:\Users\oreyes\langs\java>java Init
[3.0, 27.0, 37.0, 31.0, 52.0, 19.0, 63.0, 81.0, 88.0, 12.0]
[80.0, 27.0, 7.0, 55.0, 21.0, 100.0, 73.0, 62.0, 9.0, 91.0]
[85.0, 50.0, 66.0, 27.0, 63.0, 44.0, 0.0, 37.0, 93.0, 82.0]
[73.0, 57.0, 4.0, 80.0, 5.0, 51.0, 63.0, 13.0, 97.0, 11.0]
[87.0, 62.0, 20.0, 14.0, 44.0, 77.0, 71.0, 42.0, 27.0, 82.0]
[37.0, 32.0, 96.0, 95.0, 45.0, 8.0, 11.0, 38.0, 61.0, 6.0]
[34.0, 67.0, 84.0, 50.0, 38.0, 64.0, 50.0, 51.0, 50.0, 47.0]
[79.0, 31.0, 54.0, 37.0, 27.0, 54.0, 57.0, 30.0, 77.0, 36.0]
[74.0, 20.0, 98.0, 37.0, 8.0, 17.0, 18.0, 1.0, 29.0, 56.0]
[21.0, 4.0, 33.0, 87.0, 4.0, 76.0, 65.0, 62.0, 76.0, 96.0]

C:\Users\oreyes\langs\java>java Init
[17.0, 3.0, 78.0, 32.0, 99.0, 76.0, 94.0, 93.0, 31.0, 55.0]
[4.0, 25.0, 63.0, 68.0, 58.0, 39.0, 7.0, 55.0, 73.0, 86.0]
[96.0, 89.0, 6.0, 100.0, 20.0, 58.0, 100.0, 91.0, 35.0, 46.0]
[3.0, 16.0, 88.0, 82.0, 85.0, 35.0, 0.0, 1.0, 91.0, 78.0]
[3.0, 33.0, 77.0, 10.0, 69.0, 60.0, 75.0, 58.0, 8.0, 31.0]
[72.0, 36.0, 2.0, 19.0, 39.0, 15.0, 5.0, 74.0, 16.0, 28.0]
[48.0, 71.0, 38.0, 17.0, 37.0, 34.0, 80.0, 98.0, 16.0, 42.0]
[66.0, 74.0, 96.0, 80.0, 75.0, 7.0, 14.0, 46.0, 63.0, 56.0]
[4.0, 15.0, 8.0, 93.0, 58.0, 21.0, 81.0, 100.0, 2.0, 44.0]
[20.0, 71.0, 41.0, 43.0, 83.0, 7.0, 60.0, 28.0, 99.0, 42.0]

【讨论】:

  • 非常感谢您的精彩回答;不幸的是,我在尝试此操作时遇到错误。错误标记在以下行:array[i][j] = random.nextInt(101);它突出显示/下划线“nextInt”并显示以下消息:“Integer 类型的方法 nextInt(int) 未定义”。问题可能出在哪里?谢谢你,OscarRyz。
  • 您已将 random 定义为 Integer ,将其声明为 Random ,如:Random random = new Random()
  • 我已经尝试过了,但不幸的是仍然没有运气......我的项目中的其他地方是否存在 eclipse 未检测到的错误?
【解决方案2】:

Random.nextInt() 会做你想做的事吗?

【讨论】:

  • 谢谢你们,但不幸的是这没有奏效。请问如何将 Random.nextInt()/Random.nextInt(101) 方法实现到我的 3D 数组中?谢谢。
猜你喜欢
  • 2016-12-24
  • 2010-11-07
  • 2015-08-01
  • 1970-01-01
  • 2015-05-12
相关资源
最近更新 更多