比如说需要存储10个, 200个, 10000个List, Set, Map等如何设置初始容量?也就是譬如
List<Elem> list = new ArrayList<>(n);
这个n如何设置?是恰好就是10个, 200个, 10000个还是 n/load_factor ?
3 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
首先你得知道你的数据规模,比如:100,然后还得知道每个容器实现的扩容方式,比如:HashMap
初始默认容量为16,扩容因子为0.75,也就是说超过12个时就会扩容,那么当容量接近该值时,就应事先把容量定为32(翻倍,这个是HashMap
的扩容方法),所以当容量为100,且后续可能不会再增长的时候,可以把HashMap
的初始容量设定为:100,实际上HashMap
会找到一个比100大的最小2的整数指数幂(这里应该是128),如果后续有扩容的需求,则需要考虑进来,因具体情况而定。
当然,上述方法仅针对对性能要求很高的场景,绝大多数情况下,并无太大实际意义,仅供参考。
添加回答
举报
0/150
提交
取消