ArrayList与Vector的异同点有哪些
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"ArrayList与Vector的异同点有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2025年12月02日ArrayList与Vector的异同点有哪些
本篇内容介绍了"ArrayList与Vector的异同点有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
ArrayList VS Vector
相同点: 1>都是基于Object数组实现的。 2>都允许添加null元素。 不同点: 1>ArrayList不是线程安全的,Vector是线程安全的(方法是Synchronized的)。 2>ArrayList扩容后容量变为之前的1.5倍,Vector扩容后容量是之前的2倍,故ArrayList更省空间。 容量: ArrayList 初始容量:0 扩容:第一次(调用add方法时)扩展为10,之后每次扩展为之前的1.5倍。 说明: 1>虽然ArrayList类的初始容量默认为10(private static final int DEFAULT_CAPACITY = 10;) 2>但实际上在new ArrayList()后,ArrayList的elementData(transient Object[] elementData;)的length为0 3>在第一次调用add方法时,elementData的length才扩展到10 4>若之后还需要扩展容量时,容量每次扩展为之前的1.5倍 代码: 1>无参构造方法: this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; // private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; 2>扩容1.5倍: newCapacity = oldCapacity + (oldCapacity >> 1); 3>扩容时对数组进行复制: elementData = Arrays.copyOf(elementData, newCapacity); Vector 初始容量:10 扩容:每次扩展为之前的2倍。 代码: 1>无参构造方法: this(10); 2>扩容2倍: int newCapacity = oldCapacity + ((capacityIncrement > 0) ? capacityIncrement : oldCapacity); // capacityIncrement默认为0 3>扩容时对数组进行复制: elementData = Arrays.copyOf(elementData, newCapacity);ArrayList VS LinkedList
相同点: 1>都允许添加null元素。 不同点: 1>对于随机访问get和set,ArrayList比LinkedList快。 2>对于插入和删除操作,LinkedList比较快。
相关集合:
1)Collections.synchronizedList(List list) 举例: ListsyncArraylist = Collections.synchronizedList(new ArrayList ()); List syncLinkedList = Collections.synchronizedList(new LinkedList ()); 说明: 1>Collections.synchronizedList(List list)实际上是创建了一个java.util.Collections的内部类SynchronizedList。 2>SynchronizedList只是在自己的方法中使用同步代码块将List(封装的ArrayList、linkedList等)里相应的方法包裹了起来,故SynchronizedList的扩容方式同它封装的list一样。 3>SynchronizedList还可以指定锁对象,如不指定,默认为this。 2)CopyOnWriteArrayList: 1>使用ReentrantLock来实现线程的同步。 2>每添加一个元素,就进行一次数组的copy,故CopyOnWriteArrayList的写性能非常的糟糕。 3>多线程环境下,CopyOnWriteArrayList的读性能比Collections.SynchronizedList的读性能好一些(后者的get方法也被同步代码块包裹了,故读性能稍差一点)。3)Stack继承自Vector,新增了push、pop方法。
"ArrayList与Vector的异同点有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
方法
容量
代码
性能
线程
展为
元素
实际
数组
同步
异同
不同
相同
安全
不同点
内容
包裹
实际上
更多
相同点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
华为软件开发云的简单使用
电脑运行服务器端
泰域网络技术
中国房地产协会房价数据库
lol服务器不显示游戏界面
安装微擎数据库主机怎样填
数据库注册人员认证
提升服务器的安全
软件开发系统详细设计
柬埔寨雪川网络技术
网络部署与大数据库
软件开发完客户不给尾款
我的世界服务器怎么给别人积分
分布视图连接数据库
柯美6500服务器没电
环球上海网络安全论坛
交换机软件开发教程
博雅数据库北京预估2021
网络安全等级保护限期整改
慧通软件如何添加服务器
最全的论文写作数据库汇总
如何提高服务器安全性能
软件开发中项目上线的术语
内蒙古招生大数据库
首选dna服务器
网络安全宣传周公益宣传片
戴尔服务器硬盘亮黄灯
db2数据库表空间大小查看
数据库选课表的主键
互联网和现代科技发展的项目