java需要关注的知识点---Vector

1.默认初始大小 10.
2.Vector是一个object数组,Vector的add是线程安全的。
3.Vector的方法 ensureCapacityHelper
Java代码   收藏代码
  1.  private void ensureCapacityHelper(int minCapacity) {  
  2. int oldCapacity = elementData.length;  
  3. if (minCapacity > oldCapacity) {  
  4.     Object[] oldData = elementData;  
  5.     int newCapacity = (capacityIncrement > 0) ?  
  6.     (oldCapacity + capacityIncrement) : (oldCapacity * 2);  
  7.         if (newCapacity < minCapacity) {  
  8.     newCapacity = minCapacity;  
  9.     }  
  10.            elementData = Arrays.copyOf(elementData, newCapacity);  
  11. }  
  12.    }  


该方法在插入元素时候,判断数组长度 ,如果长度不够,进行扩容,扩容的方式:根据capacityIncrement 的值来判断(capacityIncrement 的值默认为 0, 可以通过vector的构造方法传递:“public Vector(int initialCapacity, int capacityIncrement)”),
如果capacityIncrement 的值大于0,则在原来长度的基础上加上增长基数capacityIncrement ,否则 按原来长度2倍进行扩容。

4.Vector 的 insertElementAt 方法

Java代码   收藏代码
  1.    public synchronized void insertElementAt(E obj, int index) {  
  2. modCount++;  
  3. if (index > elementCount) {  
  4.     throw new ArrayIndexOutOfBoundsException(index  
  5.                          + " > " + elementCount);  
  6. }  
  7. ensureCapacityHelper(elementCount + 1);  
  8. System.arraycopy(elementData, index, elementData, index + 1, elementCount - index);  
  9. elementData[index] = obj;  
  10. elementCount++;  
  11.    }  

该方法使用system.arraycopy[从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束],把需要插入元素的位置上的已存在元素往后移动一位,移位后,把需要插入的元素指定到index位置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值