Java中动态数组的二维静态数组
我有一个二维数组作为NxM大小的输入,其中N是已知的和静态的,而M实际上是动态增长的,并且对于数组的每个索引都是不同的[0…N-1] 我想我可以像这样初始化我的2D数组: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]=
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]);