栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Java】Vector核心扩容机制和源码分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java】Vector核心扩容机制和源码分析

Vector核心扩容机制和源码分析

Vector中维护了一个Object类型的数组elementData,add方法添加的属性存放在elementData数组中。Vector有一个无参构造器Vector( )和一个有参构造器Vector(int)。

一、分析使用无参构造器,创建和使用Vector的源码 1、构造无参构造器,给vector添加元素
import java.util.Vector;
public class VectorSource {
    public static void main(String[] args) {
        Vector vector = new Vector();//使用无参构造器创建Vector对象
        for (int i = 0; i < 10; i++) {//使用for循环给vector集合添加1-10数据
            vector.add(i);
        }
        vector.add(11);//给vector集合添加第11个数据,观察是否扩容及扩容机智
    }
}
2、设置断点,debug扩容机理

3、结论

当创建Vector对象时,若使用的是无参构造器,则初始elementData容量为0,第一次添加,则扩容elementData容量为10,如需再次扩容,则扩容elementData容量为上一次容量的2倍。

#、分析使用有参构造器,创建和使用Vector的源码 1、构造有参构造器,给vector添加元素
import java.util.Vector;
public class VectorSource {
    public static void main(String[] args) {
        Vector vector = new Vector(15);//使用有参构造器创建Vector对象,初始容量自定义为15
        for (int i = 0; i < 15; i++) {//使用for循环给vector集合添加1-15数据
            vector.add(i);
        }
        vector.add(16);//给vector集合添加第16个数据,观察是否扩容及扩容机制
    }
}

使用有参构造器创建Vector对象,初始容量自定义为15

2、设置断点,debug扩容机理

3、结论

当创建Vector对象时,若使用的是有参构造器,则初始elementData容量为(int)中指定大小,如需扩容,则直接扩容为上一次elementData容量的2倍。

三、总结

当创建Vector对象时,不管使用的是无参构造器还是有参构造器,扩容为上一次elementData容量的2倍。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762569.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号