面试题答案
一键面试- 一般情况(原容量小于1024):
- 如果原切片的容量小于1024,新容量会直接翻倍。例如,原切片容量为5,当需要扩容时,新容量变为10。
- 原容量大于等于1024:
- 当原切片容量大于或等于1024时,新容量会增加原容量的1/4。例如,原切片容量为1024,扩容后新容量为1024 + 1024/4 = 1280。
- 特殊情况:
- 如果新元素的个数加上原切片的元素个数小于上述计算出的新容量,就以计算出的新容量为准。
- 如果新元素的个数加上原切片的元素个数大于上述计算出的新容量,那么新容量会直接设置为新元素个数加上原切片元素个数。例如,原切片有5个元素,容量为5,现在要添加7个新元素,原容量5小于1024,翻倍后新容量为10,但5 + 7 = 12 > 10,此时新容量就会直接设置为12。