如何在Java中创建一个不规则的数组

时间:2015-12-13 13:50:58

标签: java arrays multidimensional-array initialization ragged

我想创建一个参差不齐的数组(二维数组),用户一次插入一个值。我通常会这样创建它们:
int[][] array = {{1,2,3}, {6,7}}但我事先并不知道它们的大小。
如何创建这样的数组呢?

2 个答案:

答案 0 :(得分:0)

你应该像这样初始化一个锯齿状/粗糙(同样的东西)数组:int array[][] = new int[4][];然后你可以(例如):

    array[0] = new int[5];
    array[1] = new int[5];
    array[2] = new int[5];
    array[3] = new int[5];

然后你可以:

for (int i = 0; i < 4; i++){
      for (int j = 0; j < i + 1; j++) {
        array[i][j] = i + j;
      }
}

如果你想打印:

for (int i = 0; i < 4; i++) {
      for (int j = 0; j < i + 1; j++)
        System.out.print(array[i][j] + " ");
      System.out.println();
}

您将获得输出:

0
1 2
2 3 4
3 4 5 6

当然,如果您想从用户获取输入,您可以使用Scanner.nextInt();替换此处的任何作业。

评论后修改:必须指定尺寸,如果您不想这样做,请使用:

ArrayList<ArrayList<Integer>> array = new ArrayList<ArrayList<Integer>>();

答案 1 :(得分:0)

正确使用扫描仪

Scanner input = new Scanner(System.in);
int variable = input.nextInt();

您的IDE应该自己包含java包,以便您使用扫描程序。

与@Idos相关,使用ArrayList,您将使用

array.add(variable);

而不是仅仅选择数组的索引。我相信有很多关于如何使用ArrayLists的教程,你可以找到更多关于它们的信息。