您的位置:首页
关于ArrayList 容量问题
2016-11-10 10:54
288 查看
ArrayList 是实现List 接口的动态数组,即它的容量大小是可变的。允许包括null 在内的所欲元素。
每个ArrayList 实例都有一个容量,该容量是指用来存储列表元素的数组的大小。默认初始容量为10.
随着ArrayList 中元素的增加,它的容量会不端的自动增长。在每次添加新的元素时,ArrayList 都会检查是否需要进行扩容操作,扩容操作带来数据向新数组的重新拷贝。所以,如果已知业务数据量,在构造ArrayList 时可以 指定一个初始容量,这样会减少扩容时数据的拷贝问题。当然在添加大量元素前,应用程序也可以使用ensureCapacity操作来增加ArrayList实例的容量,这可以减少递增式再分配的数量。
具体可以查阅 ArrayList 的源码
ensureCapacity(),该方法就是ArrayList的扩容方法。而每次扩容的容量计算方式
参考链接:http://www.cnblogs.com/chenssy/p/3498468.html
每个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
相关文章推荐
- 关于ArrayList的初始容量以及扩容的效率问题
- 关于ArrayList的初始容量以及扩容的效率问题
- 关于ArrayList的初始容量以及扩容的效率问题
- 关于ArrayList类型转换的问题_java可以为啥c#不行
- 关于ArrayList使用时常遇到的问题以及解决方法
- 关于List,ArrayList中remove(object obj)方法不能删除对象问题
- 关于ArrayList和LinkedList的索引问题
- 关于ArrayList对象的容量Capacity
- 关于 Arraylist和HashSet中元素比较的问题所引发的思考
- 关于ArrayList与LinkedList添加数据的效率问题
- 关于ArrayList的5个面试问题
- 工作学习 问题总结 java 基础 关于arraylist.addall
- Java和guava关于hashmap在初始化的时候最好给个初始容量,避免扩容引起性能问题的探究。
- 关于List<T>和ArrayList<T>执行效率问题
- 关于ArrayList.add方法的问题
- ArrayList的初始容量的问题
- 关于使用putParcelableArrayList遇到的问题
- 关于集合的源码实现问题——ArrayList
- 关于ArrayList数组转换为Integer类型的报错问题