我正在尝试将一段代码从使用自定义对象的 ArrayList 转换为常规数组。
以前我的定义是
ArrayList<Room> rooms = new ArrayList<Room>();
我现在改为
Room[] rooms;
以前我使用以下行将项目添加到数组列表
rooms.add(new Room(1,1,30,false,true,true,false));
但是我现在正在努力寻找应该在整个代码中简单地将单个项目添加到数组中的方式。
我认为您最好在这里坚持使用 arrayList,但只是为了让您更清楚地了解它。
为了做你想做的事情,你必须保留一个索引整数,它只指向数组中的当前位置,然后当你添加时,你可以增加它并将新对象添加到下一个位置。当您达到数组的最大大小时,您需要扩展它。你会发现已经有一些关于扩展数组的问题已经被问过了,你可以在这里找到答案: 扩展数组?
如果您可以使用固定大小的数组,那您至少有一点成功的机会。如果没有,你就无法击败ArrayList
,如果你的任务是在不重新实施的情况下取得成功,那么这是一个不可能完成的任务。
你真的应该更深入地了解重写你的代码的确切理由,它会给我们一些机会来适当地帮助你。
我可以推荐:
只要你需要插入元素就使用 Arraylist。一旦数组最终转换为数组。
如果在添加另一个元素时需要增加数组的大小,则必须构造另一个数组,其大小为旧数组+1。之后,您会将旧数组的内容复制到新数组(更大的数组)。