【问题标题】:How to create a ragged array in Java [closed]如何在 Java 中创建一个参差不齐的数组 [关闭]
【发布时间】:2015-12-13 13:50:57
【问题描述】:

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

【问题讨论】:

    标签: java arrays multidimensional-array initialization ragged


    【解决方案1】:

    你应该像这样初始化一个锯齿状/锯齿状(相同的东西)数组: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>>();
    

    【讨论】:

    • 我不知道数组的长度。 new int[4][];在这段代码中我不知道行大小和列大小
    【解决方案2】:

    正确使用扫描仪是

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

    您的 IDE 应包含自己的 java 包以供您使用扫描仪。

    关于@Idos,您将使用ArrayList

    array.add(variable);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多