如何在二维数组中创建不同的列大小

时间:2019-05-01 04:02:19

标签: java

我有两个元素和数字列表,但是如果我不知道确切的数组大小,如何将它们放入数组中?新的int [elements.size()] [我不确定这个大小]。

例如:

元素列表= [2,5] 数字列表= [99,100],[1,9,8,10,70]

public static int[][] arrays(List<Integer> numbers, List<Integer> elements){
        int count = 0;
        int x = 0;
        int y = 0;
        int[][] list = new int[elements.size()][];

        for (Integer e : elements) {       
            for (int i = count; i < count+e; i++) { 
                list[x][y] = numbers.get(i);
                y++;
            }
            x++;
            y = 0;
            count += e;
        } 

        return list;  
    }

1 个答案:

答案 0 :(得分:0)

您方法的正确输入将是列表列表,父列表中的每个列表长度可能不同:

public static int[][] arrays(List<List<Integer>> numbers) {
    int[][] array = new int[numbers.size()][];

    for (int i=0; i < numbers.size(); ++i) {
        array[i] = new int[numbers.get(i).size()];
        for (int j=0; j < numbers.get(i).size(); ++j) {
            array[i][j] = numbers.get(i).get(j);
        }
    }

    return array;
}