【问题标题】:Create n amount of arrays创建 n 个数组
【发布时间】:2011-07-03 02:43:35
【问题描述】:

如果可能的话,我想知道如何创建 n 个相同大小的数组。帮助将不胜感激。例如:我想创建 10 个元素数量相同的数组,而不必一个一个地创建它们:int[] a = new int[]。希望现在更清楚了。

我在其中一个 cmets 中的一个问题是 +-“我如何对数组行进行排序以用于行/列用于列”。我想通了——也许有人会觉得它有用。

int[] sortarr = new int[5]; //create array to transfer data from row to new array

for (int i=0; i<N; i++){
    for (int j=0; j<5; j++){
    sortarr[j] = hands[i][j]; //transfer the data from 2D array's row to sortarr
    }
    Arrays.sort(sortarr); //sort the row's data

    for (int x=0; x<5; x++){ 
    hands[i][x] = sortarr[x]; //transfer the data back to 2D array
    }

}

也许这很明显,但我希望这会对那里的人有所帮助。

【问题讨论】:

  • 你能澄清你的问题吗?我不明白你想做什么。
  • 您能提供更多信息吗?你需要可变数量的数组吗?

标签: java arrays sorting multidimensional-array


【解决方案1】:

你需要创建一个二维数组。

int n;
int size;
int[][] arr = new int[size][n];

您可以使用嵌套的for 循环填充数组;

for(int i =0;i < arr.length; i++) {
    for(int j = 0; i < arr[i].length; j++) {
        arr[i][j] = someValue;
    }
}

或者你可以像这样填充数组:

int[][] arr2 = new int[n][];
for(int i = 0; i < n; i++){
    arr2[i] = new int[size];
}

你可以把一个二维数组想象成一个数组的数组,例如:

private Card[][] allPlayerHands;
public Card[] getHand(int playerNumber) {
    return allPlayerHands[playerNumber];
}

这是一个关于 2D 数组的 Stack Overflow 问题:

Initialising a multidimensional array in Java

【讨论】:

  • 我不确定二维数组是否可以工作。我想洗一副牌,现在把牌发给 5 个不同的人。这五张卡片需要分别保存在自己的数组中。
  • @ISJ,您可以将二维数组视为数组的数组。查看我的编辑。
  • @ISJ 在帖子中间进行了另一个编辑,用于在 2D 数组中创建许多 1D 数组。
  • @jjnguy,非常感谢。所以我可以在第一行保存玩家的卡片。玩家二的牌排在第二排,依此类推。因此: int[][] a = new int[players][5] - 5 card poker
  • @jjnguy - 非常感谢,非常感谢。感谢您的帮助
【解决方案2】:

二维数组就是答案。让我试着解释一下

您需要将套牌发给 5 个不同的人,即 int people[5]。

现在考虑,每 5 个人有 5 张卡片,即

Guy 1: 1,2,3,4,5
Guy 2: 1,2,3,4,5
Guy 3: 1,2,3,4,5
Guy 4: 1,2,3,4,5
Guy 5: 1,2,3,4,5

people[1]: 1,2,3,4,5
people[2]: 1,2,3,4,5
people[3]: 1,2,3,4,5
people[4]: 1,2,3,4,5
people[5]: 1,2,3,4,5

people[5][5]

现在,如果您必须访问第 1 个人的卡 3,那么它将是

people[0][2] // u know its zero based aray

【讨论】:

    【解决方案3】:

    int[] i = {1,2,3,4,5}

    int[] j = i.clone()

    您将单独获得大小和内容

    【讨论】:

      【解决方案4】:

      【讨论】:

      • 哈哈,搜索谷歌并发布第一个结果的链接。好努力。
      猜你喜欢
      • 1970-01-01
      • 2022-01-05
      • 2012-09-17
      • 2022-01-11
      • 2021-07-20
      • 2017-11-22
      • 2022-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多