关于ArrayList和Vector的自动增长
2012-03-16 16:01
183 查看
集合中常用的两个类,ArrayList和Vector是两个先进先出的堆栈。他们一个是异步,一个是同步。new ArrayList()或new Vector()默认都是10个长度,Vector构造器中也可以构造一个适当的步长,如:Vector(int initialCapacity, int capacityIncrement)
ArrayList自增大约一半的长度。可从源码中得知
如果有10个长度,当填满后,自动增加到16个长度,几乎是一半。
Vector自增大约是一倍的长度。
如果设置有步长,则增长到原长度+步长的容量,如果没有设置步长,则增加到原长度*2。几乎是一倍的长度
ArrayList自增大约一半的长度。可从源码中得知
int newCapacity = (oldCapacity * 3)/2 + 1;
如果有10个长度,当填满后,自动增加到16个长度,几乎是一半。
Vector自增大约是一倍的长度。
int newCapacity = (capacityIncrement > 0) ? (oldCapacity + capacityIncrement) : (oldCapacity * 2);
如果设置有步长,则增长到原长度+步长的容量,如果没有设置步长,则增加到原长度*2。几乎是一倍的长度
相关文章推荐
- 关于数据库中的主键的自动增长
- 关于ArrayList自动扩容
- 关于Oracle 生成包含日期和自动增长序列的编码
- ArrayList和Vector可增长的对象数组
- 关于vector的容量增长问题
- 关于ArrayList和Vector区别
- 关于SQLSERVER的自动增长字段
- 关于jdbc保存后,返回自动增长的id,使用stmt.getGeneratedKeys();
- 关于插入记录后查询自动增长ID问题
- Java之Vector向量类实现自动动态增长的对象数组-类似动态数组
- C/C++ 标准容器 vector的内存空间自动增长概述
- 关于vector的容量增长问题
- 【MyBatis】关于MyBatis插入自动增长id的Bean到数据库后返回的id为null的解决办法
- 关于sql 中导入数据时的自动增长列转换为一般列,导入后转换为自动增长列
- java中关于ArrayList,LinkedList,HashSet,Vector,TreeSet的区别和使用
- 关于mySql中的自动增长值的设置
- 关于数据库增长取消错误的消息~(数据库 '' 中文件 '' 的自动增长在 17719 毫秒后 已取消或出现超时)
- 关于List接口中ArrayList,LinkedList和Vector的取值方法的一些性能测试
- 关于rs.addnew后立即得到自动增长ID的问题
- 关于TreeSet,ArrayList,Vector 删除某条记录后的探索