所以假设我有一个大小为 10 的数组,索引范围从 0 到 9。我添加了一堆元素并在索引 6 处停止添加。所以使用 array.length,我可以知道数组的大小是 10,但是我如何找到哪个索引包含最后一个值,然后是空的?我是否应该做一个循环并在 index == null 处停止?
我通过创建一个动态数组来模仿数组列表,该数组在大小满时增长。
arg,忘了告诉大家,如果数组是int,那么空的slots就是0?
使用java.util.ArrayList
. 您无需考虑索引,它是可调整大小的数组实现。
默认情况下,在创建数组时,所有值都是空的,因此如果您不在任何索引处插入任何值(可能在数组的末尾或开头或中间),它只会为空。所以你应该放空检查来验证。
由于这是您的分配,因此一个技巧是添加一个变量以跟随添加的元素数量。
因此,您可以拥有一个public int size = 0
变量并更改您的添加和删除操作,以在添加或删除元素时增加和减少此变量。
然后在您添加方法中,您可以进行简单检查以查看是否需要扩展数组
if (size == array.length)
expandArray