关于ArrayList 容量问题

  ArrayList 是实现List 接口的动态数组,即它的容量大小是可变的。允许包括null 在内的所欲元素。

  每个ArrayList 实例都有一个容量,该容量是指用来存储列表元素的数组的大小。默认初始容量为10.

  随着ArrayList 中元素的增加,它的容量会不端的自动增长。在每次添加新的元素时,ArrayList 都会检查是否需要进行扩容操作,扩容操作带来数据向新数组的重新拷贝。所以,如果已知业务数据量,在构造ArrayList 时可以 指定一个初始容量,这样会减少扩容时数据的拷贝问题。当然在添加大量元素前,应用程序也可以使用ensureCapacity操作来增加ArrayList实例的容量,这可以减少递增式再分配的数量。

  具体可以查阅 ArrayList 的源码

  ensureCapacity(),该方法就是ArrayList的扩容方法。而每次扩容的容量计算方式

        //计算新的容量大小,为当前容量的1.5倍
            int newCapacity = (oldCapacity * 3) / 2 + 1;

 

 

参考链接:http://www.cnblogs.com/chenssy/p/3498468.html

posted @   panie2015  阅读(970)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示