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

Java 如何在二维数组中创建不同的列大小,java,Java,我有两个元素和数字的列表,但如果我不知道确切的数组大小,我如何将它们放入数组中?新int[elements.size()][我不确定这个大小] 例如: 元素列表=[2,5] 数字列表=[99100],[1,9,8,10,70] public static int[][] arrays(List<Integer> numbers, List<Integer> elements){ int count = 0; int x = 0;

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

例如:

元素列表=[2,5] 数字列表=[99100],[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;  
    }
公共静态int[][]数组(列表编号、列表元素){
整数计数=0;
int x=0;
int y=0;
int[][]list=新的int[elements.size()][];
对于(整数e:元素){
对于(inti=count;i
方法的正确输入是列表列表,父列表中的每个列表可能具有不同的长度:

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;
}
公共静态int[][]数组(列表编号){
int[][]数组=新的int[numbers.size()][];
对于(int i=0;i
所以根本不可能使用我提供的两个列表创建阵列?我甚至不理解您当前的方法。您传递的是一个简单的数字列表,那么我们如何从概念上知道一个子列表的开始和结束位置呢?列表似乎是您实际面临的更可能的情况。您能否提供一些关于预期输出的详细信息???例如,您是否希望返回维度为[2][5]的二维矩阵?对于第一个数字列表,您希望在第三、第四和第五个位置(即100之后)看到什么?更java-y的方法是返回一个列表数组,或者更好的是返回一个列表列表,其中每个条目对应于一个数字元素列表?无论如何,关于你试图解决的问题的一些信息可能会产生一种比你所问的非常具体的问题“更好”的方法。