【问题标题】:Creating a new 2D int Array using a nested for loop [duplicate]使用嵌套的 for 循环创建一个新的 2D int 数组 [重复]
【发布时间】:2019-11-19 21:22:17
【问题描述】:

我正在尝试打印二维数组 (a) 的“中间”。例如,对于我的代码中的给定数组,我想打印:

[3,4,5,6]

[4,5,6,7]

但是我只能打印出“中间”值。我想根据说明修改二维数组(n),然后打印出来。 我该怎么做呢?

这是我的代码:

public static int[][] inner (int[][] a) {
    
    int rowL = a.length - 1;
    int colL = a[1].length -1;
    
    for (int row = 1; row < rowL; row++) {
        for (int col = 1; col < colL ; col++) {
            System.out.print(a[row][col]);
            
        }
        System.out.println();
    }
    
    return a;
}

public static void main(String[] args) {
    int [][] a = { {1,2,3,4,5,6},
                   {2,3,4,5,6,7},
                   {3,4,5,6,7,8},
                   {4,5,6,7,8,9}  };
    
    
    
       for (int[] row : a) {
           System.out.println(Arrays.toString(row));
       }
       
       System.out.println();
       
       
       
       for ( int[] row : inner(a) ) {
           System.out.println(Arrays.toString(row));
       }
     
}

【问题讨论】:

    标签: java arrays for-loop multidimensional-array


    【解决方案1】:

    首先,您需要创建一个具有正确大小的新空数组。然后你填写新数组的值而不是打印它们。

    【讨论】:

    • 是否可以在内部方法中修改现有数组(a)而不是创建一个新数组?
    • @neaf 不行,数组创建后大小不能更改。
    • @neaf 如果您需要一个可以改变其大小的结构,我建议您了解ListArrayList
    • 好的,我知道了,谢谢!一件事,你愿意解释一下为什么代码for ( int[] row : inner(a) ) { System.out.println(Arrays.toString(row)); }会打印出这个:3456 4567 [1, 2, 3, 4, 5, 6] [2, 3, 4, 5, 6, 7] [3, 4, 5, 6, 7, 8] [4, 5, 6, 7, 8, 9]
    • @neaf 请用minimal reproducible example发布一个新问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2021-11-11
    • 2016-10-27
    相关资源
    最近更新 更多