1

所以假设我有一个大小为 10 的数组,索引范围从 0 到 9。我添加了一堆元素并在索引 6 处停止添加。所以使用 array.length,我可以知道数组的大小是 10,但是我如何找到哪个索引包含最后一个值,然后是空的?我是否应该做一个循环并在 index == null 处停止?

我通过创建一个动态数组来模仿数组列表,该数组在大小满时增长。

arg,忘了告诉大家,如果数组是int,那么空的slots就是0?

4

2 回答 2

2

使用java.util.ArrayList. 您无需考虑索引,它是可调整大小的数组实现。

默认情况下,在创建数组时,所有值都是空的,因此如果您不在任何索引处插入任何值(可能在数组的末尾或开头或中间),它只会为空。所以你应该放空检查来验证。

于 2012-10-14T09:38:55.820 回答
2

由于这是您的分配,因此一个技巧是添加一个变量以跟随添加的元素数量。

因此,您可以拥有一个public int size = 0变量并更改您的添加和删除操作,以在添加或删除元素时增加和减少此变量。

然后在您添加方法中,您可以进行简单检查以查看是否需要扩展数组

if (size == array.length)
   expandArray
于 2012-10-14T09:54:58.203 回答