2012-11-22 51 views
2

我想转换一段代码使用自定义对象的ArrayList到一个常规数组。Arraylist与阵列与在java中的自定义对象

上我的定义是

ArrayList<Room> rooms = new ArrayList<Room>(); 

这是我现在改为

Room[] rooms; 

以前我用下面的行项目添加到数组列表

rooms.add(new Room(1,1,30,false,true,true,false)); 

但我我正在努力寻找我应该在整个代码中简单地将单个项目添加到数组的方式。

+0

你问的是如何将一个数组的元素添加到ArrayList(反之亦然)? – fireshadow52

+0

我想离开使用数组列表,我想将数组从列表中添加到数组中。 –

+0

'List rooms = new ArrayList ();'更加可取(编码为接口原理) –

回答

2

我认为你最好在这里坚持使用arrayList,但只是为了让你更清楚一点。

要做你正在做的事情,你将不得不保留一个索引整数,它将指向数组中的当前位置,然后当你添加时,可以增加它并将新对象添加到下一个获取。 当您达到阵列的最大尺寸时,您需要展开它。 你会发现扩大阵列已经有问题了,你可以在这里找到答案: Expanding an Array?

+0

其实很简单:只需复制粘贴'ArrayList'的确切实现。你当然无法打败。 –

0

如果在添加其他元素时需要增加数组的大小,则必须构造另一个数组,其大小为旧数组+1。 之后,您会将旧数组的内容复制到新数组(更大的数组)中。

1

如果你可以住在一个固定大小的数组中,那至少会给你一点成功的机会。如果没有,你不能击败ArrayList,如果你的任务是在不重新实现的情况下取得成功,那么这是一个不可能完成的任务。

你真的应该更深入地了解重写代码的确切原因,它会给我们一些机会来帮助你。

+0

特别是当你努力向数组中添加一个元素时。 –

1

我可以推荐:
使用Arraylist只要你需要插入元素。一旦阵列最终转换为阵列。