在Java中使用ArrayList的2D动态数组

我需要实现2D动态数组。 行数是固定的,比如说n。 但每行的列数不固定且等效。 例如,第一行有3个元素,第二行有5个元素。 如何使用Arraylist在Java中执行此操作。 谢谢。

List>怎么样?

例如:

 List> list = new ArrayList>(); List row1 = new ArrayList(); row1.add(new Foo()); row1.add(new Foo()); row1.add(new Foo()); list.add(row1); List row2 = new ArrayList(); row2.add(new Foo()); row2.add(new Foo()); list.add(row2); 
 ArrayList> twodlist = new ArrayList>(); ArrayList row = new ArrayList(); row.add(new SomeObject(/* whatever */)); // etc twodlist.add(row); row = new ArrayList(); // etc 

您可以为行使用数组,因为此维度已修复:

 @SuppressWarnings("unchecked") ArrayList[] arr = new ArrayList[ fixedsize]; 

或使用嵌套的ArrayLists:

 List> list = new ArrayList>( fixedsize ); 

尝试:

 ArrayList> array = new ArrayList>(); for (int i = 0; i < n; ++i) { array.add(new ArrayList()); } 

您可以创建一个ArrayList元素数组,因为您的行数是固定的。

 ArrayList[] dynamicArray = new ArrayList[n](); 

注意:您需要在数组中的每个条目中分配一个ArrayList对象。 所以…

 for (int loop = 0; loop < n; loop++) dynamicArray[loop] = new ArrayList(); 

或者,如果您希望行和列都是动态的,则可以创建ArrayLists的ArrayList ....

 ArrayList> dynamicArray = new ArrayList>(); 

再次,您需要在dynamicArray的每个新条目中创建一个数组列表。

如果行数是固定的,请尝试以下方法:

 ArrayList[] = new ArrayList[fixedRows] 
 List> twoDList = new ArrayList>(n); for( int i=0; i() ); 

用于:

 twoDList.get(rownumber).add(newElementInColumn); 

如果行是3,我将创建一个ArrayList数组(ArrayList [3] rows = new ArrayList [3])然后为每一行创建列类并将它们插入到ArrayList中。 然后将ArrayList放入Array中。 行数组的索引可用于跟踪行号。 记住数组从0开始索引,所以行号是行[index + 1]

如您所说,您可以创建一个arraylists数组并使用ArrayList(int初始容量)构造函数来设置每列的容量:

 ArrayList[] rows=new ArrayList[n]; for(i=0;i(initialsize); }