与Java的衣衫褴褛的2D int数组金字塔

时间:2015-05-23 18:34:20

标签: java arrays for-loop 2d

编写分配参差不齐的2-D int数组所需的代码,使第一行有空间存储1个值,第二行可以存储2个值,第三行有空间存储3个值,等等到第50行有空间存储50个值。

我知道上面的问题我必须基本上创建一个带有二维数组的金字塔。我真的不知道如何操纵2D数组,任何帮助都会很棒。这是我的代码到目前为止,不知道如何分配空间像上面的问题所说:

import java.util.Arrays;
public class Ragged2D {

    public static void main(String[] args) {
        int[][] boo = new int[50][];


        for(int i = 0; i < boo.length; i++){

            for(int k = 0; k< boo[i].length; k++){

            }
        }
        System.out.println(Arrays.toString(boo));

    }
}

2 个答案:

答案 0 :(得分:1)

这是初始化2D数组的一行:

public static void main(String[] args) {
    int[][] boo = new int[50][];


    for(int i = 0; i < boo.length; i++){
        boo[i] = new int[i+1]; // initialize the i'th row to have i+1 elements
        for(int k = 0; k< boo[i].length; k++){
            boo[i][k] = ...
        }
    }
    System.out.println(Arrays.deepToString(boo)); // this change is required to print 2D array
}

答案 1 :(得分:1)

我想这就是你需要的东西

int[][] boo = new int[50][];

    for (int i=0;i<50;i++) {
        boo[i] = new int[i+1];
    }

这样boo [0]可以包含1个元素(boo [0] [0]),boo [1]可以包含2个元素(boo [0] [0]和boo [0] [1])等。