处理数组作为方法结果

时间:2016-11-16 22:37:45

标签: java arrays methods

所以我有这个方法:

  public static int[] select(int maxWidth, int maxHeight) {
    int rHeight = StdRandom.uniform(0, maxHeight);
    int rWidth = StdRandom.uniform(0, maxWidth);
    return new int[] {rHeight, rWidth};
  }

我还没有足够的进步能够以正确的方式使用它。 我有第二种方法,我想执行'选择'几次。我的想法是用这样的for循环来做(其中' n'是一个int):

for(int i = 0; i < n; i++){
   select(h, w);
}

但现在我不知道如何在1d阵列中保存这个for循环的结果,因为在尝试保存时我总是会遇到错误:

int[] a = new int[select(h, w)];

我非常清楚这看起来非常奇怪和错误,但我不知道如何以正确的方式做到这一点而且我不知道我要在Google上搜索什么

3 个答案:

答案 0 :(得分:0)

这是你可以做到的一种方式:

int[][] a = new int[n][];
for(int i = 0; i < n; i++){
   a[i] = select(h, w);
}

基本上这段代码会创建一个二维数组,然后在for循环中,将select的结果添加到数组的每个元素中。

答案 1 :(得分:0)

我不认为你可以在一维数组中执行此操作,如果要多次运行select,并且每次返回一个数组,则必须有一个数组数组。如果你坚持使用一维数组来存储答案,你将不得不实现一个元组类,尽管我认为你最好只按照Sub 6 Resources的方式做一个2D数组。

答案 2 :(得分:0)

    int[] combined = new int[n*2];
    for(int i = 0; i < n; i++){
       int a[] = select(h, w);
       System.arraycopy(a, 0, combined, i*2, 2);
    }