既然满了,那就扩容呗!
生成一个容量更大的数组,将已有的垃圾倒腾到里面就行了。
但是这样做不太方便,难道每次满了都得手动扩容一次?
一个更通用的做法是,包装一个动态数组。
像javascript,它的数组长度是可以动态改变的。
静态语言的数组不支持这样的操作,该怎么扩展呢?
杨成思考了一会儿,决定基于以下的策略:
每次新增元素(垃圾)之前,检测数组容量是否足够。
如果不够,就将新容量扩充为原来的1.5倍。
这种方式,被jdk(java开发工具包)所采用,具体实现上更复杂。
但在这个问题上,简单逻辑就够了。
那么就开始动手实现吧!
生成一个容量更大的数组,将已有的垃圾倒腾到里面就行了。
但是这样做不太方便,难道每次满了都得手动扩容一次?
一个更通用的做法是,包装一个动态数组。
像javascript,它的数组长度是可以动态改变的。
静态语言的数组不支持这样的操作,该怎么扩展呢?
杨成思考了一会儿,决定基于以下的策略:
每次新增元素(垃圾)之前,检测数组容量是否足够。
如果不够,就将新容量扩充为原来的1.5倍。
这种方式,被jdk(java开发工具包)所采用,具体实现上更复杂。
但在这个问题上,简单逻辑就够了。
那么就开始动手实现吧!