【问题标题】:2-Dimensional Array with fillArray() method in JavaJava中带有fillArray()方法的二维数组
【发布时间】:2020-12-01 21:06:56
【问题描述】:

我对编码还是很陌生,所以我提前道歉。但我正在使用二维数组,似乎无法弄清楚。我已经完成了第一部分,但我不知道如何编写方法 (fillArray())(当我在第 9 行调用它时,它说它是未定义的,但我不知道如何通过编写方法来解决这个问题) .

这是我目前所拥有的:

public class 2DArrays {

public static void main(String[] args) {
    2DArrays 2D = new 2dArrays();
    
    int[][] arr = 2D.fillArray();

    for (int i = 0; i < arr.length; i++) 
    {
        for (int j = 0; j < arr[i].length; j++) {
            String str = "";
            if (arr[i][j] < 0) {
                str = "" + arr[i][j];
            }
            else {
                str = " " + arr[i][j];
            }
            System.out.print(" " + str);
        }
        System.out.println();
    }

}

}

【问题讨论】:

    标签: java arrays 2d


    【解决方案1】:

    只需将一个循环放入另一个循环,所以...这里:

    
    public static int[][] fillArray(){
            int[][] numbers = new int[5][10];//The array that are going to return
            
            for(int i = 1;i<=5;i++) {
                for(int j = 0;j<10;j++) {
                    numbers[i - 1][j] = i - j;//fill the numbers
                }
            }
            return numbers;//return result
        }
    

    在main(向你展示它很好......?):

    public static void main(String[] args) {
            int[][] array = fillArray();
            System.out.println(Arrays.deepToString(array));
        }
    

    结果:

    [[1, 0, -1, -2, -3, -4, -5, -6, -7, -8], [2, 1, 0, -1, -2, -3, -4, -5, -6, -7], [3, 2, 1, 0, -1, -2, -3, -4, -5, -6], [4, 3, 2, 1, 0, -1, -2, -3, -4, -5], [5, 4, 3, 2, 1, 0, -1, -2, -3, -4]]
    

    【讨论】:

    • OP 说这些数字来自所示示例中的控制台。
    • @WJS 好的...那么...输入是什么?
    • 没关系,OP 编辑​​了他们的问题。它已经改变了。
    【解决方案2】:

    fillArray 将行和列作为参数。

    public static int[][] fillArray(int rows, int cols) {
        int[][] arr = new int[rows][cols];
        for (int r = 0; r < rows; r++) {
            for (int c = 0; c < cols; c++) {
                arr[r][c] = r-c + 1;
            }
        }
        return arr;
    }
    
    int[][] arr = fillArray(5,10);
    

    显示它的一种简单且格式化的方式是

    for (int[] r : arr) {
        for(int i : r) {
          System.out.printf("%3d",i);
        }
        System.out.println();
    }
    

    打印

      1  0 -1 -2 -3 -4 -5 -6 -7 -8
      2  1  0 -1 -2 -3 -4 -5 -6 -7
      3  2  1  0 -1 -2 -3 -4 -5 -6
      4  3  2  1  0 -1 -2 -3 -4 -5
      5  4  3  2  1  0 -1 -2 -3 -4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-28
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      相关资源
      最近更新 更多