在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); }