Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中动态数组的二维静态数组_Java_Arrays_List_Matrix_Arraylist - Fatal编程技术网

Java中动态数组的二维静态数组

Java中动态数组的二维静态数组,java,arrays,list,matrix,arraylist,Java,Arrays,List,Matrix,Arraylist,我有一个二维数组作为NxM大小的输入,其中N是已知的和静态的,而M实际上是动态增长的,并且对于数组的每个索引都是不同的[0…N-1] 我想我可以像这样初始化我的2D数组: ArrayList<Integer>[] array = new ArrayList[n]; 与NullPointerException一起崩溃 如何正确初始化ArrayList?您已经初始化了数组本身,而不是第一个索引处的列表(依此类推…) List[]array=newarraylist[n]; 数组[0]=

我有一个二维数组作为NxM大小的输入,其中N是已知的和静态的,而M实际上是动态增长的,并且对于数组的每个索引都是不同的[0…N-1]

我想我可以像这样初始化我的2D数组:

ArrayList<Integer>[] array = new ArrayList[n];
NullPointerException一起崩溃


如何正确初始化ArrayList?

您已经初始化了数组本身,而不是第一个索引处的列表(依此类推…)

List[]array=newarraylist[n];
数组[0]=新的ArrayList();
数组[0]。添加(1);

无论如何,我建议您避免使用数组结构,而是选择
List
。或者创建元组类(更多信息请参见)。

您已经初始化了数组本身,而不是第一个索引处的列表(依此类推…)

List[]array=newarraylist[n];
数组[0]=新的ArrayList();
数组[0]。添加(1);
无论如何,我建议您避免使用数组结构,而是选择
List
。或者创建元组类(更多信息请访问)。

如您将在中看到的

不能创建参数化类型的数组

您可以使用
数组列表
列表

,您将在

不能创建参数化类型的数组


您可以使用
数组列表
列表

以下是我的方法:

        List<ArrayList<Integer>> complex = new ArrayList <ArrayList<Integer>>();
        ArrayList<Integer> simple = new  ArrayList<Integer>();
        simple.add((Integer)5555);
        complex.add(simple);
List complex=newarraylist();
ArrayList simple=新的ArrayList();
简单。添加((整数)5555);
复杂。添加(简单);

以下是我的做法:

        List<ArrayList<Integer>> complex = new ArrayList <ArrayList<Integer>>();
        ArrayList<Integer> simple = new  ArrayList<Integer>();
        simple.add((Integer)5555);
        complex.add(simple);
List complex=newarraylist();
ArrayList simple=新的ArrayList();
简单。添加((整数)5555);
复杂。添加(简单);
ArrayList[]数组=新的ArrayList[n];
而不是去做。 您可以执行以下操作:

List<List<Integer>> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list1.add(list2);
ArrayList[] array = list1.toArray(new ArrayList[10]);
System.out.println(array[0]);
List list1=new ArrayList();
List list2=新的ArrayList();
清单2.添加(2);
列表1.添加(列表2);
ArrayList[]array=list1.toArray(新的ArrayList[10]);
System.out.println(数组[0]);
ArrayList[]数组=新的ArrayList[n];
而不是去做。 您可以执行以下操作:

List<List<Integer>> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list1.add(list2);
ArrayList[] array = list1.toArray(new ArrayList[10]);
System.out.println(array[0]);
List list1=new ArrayList();
List list2=新的ArrayList();
清单2.添加(2);
列表1.添加(列表2);
ArrayList[]array=list1.toArray(新的ArrayList[10]);
System.out.println(数组[0]);

< /代码>作为考虑,考虑使用<代码>列表MyList=新的ArayLead(n);<代码>而不是
ArrayList[]数组=新的ArrayList[n]作为一个考虑,考虑使用<代码>列表MyList=新的ARARYLIST(n);<代码>而不是
ArrayList[]数组=新的ArrayList[n]。我的N是100K-200K。对每个ArrayList进行循环和初始化是不可避免的吗?无论数量多少,初始化都是不可避免的。阅读我更新答案第二部分的建议。我的N是100K-200K。对每个ArrayList进行循环和初始化是不可避免的吗?无论数量多少,初始化都是不可避免的。阅读我更新答案第二部分的建议。
List<List<Integer>> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list1.add(list2);
ArrayList[] array = list1.toArray(new ArrayList[10]);
System.out.println(array[0]);