ArrayList与Vector的异同点有哪些
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,本篇内容介绍了"ArrayList与Vector的异同点有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2025年02月04日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安全错误
数据库的锁怎样保障安全
华为服务器默认登录地址密码
山西国产服务器哪个好
贵安联盟电竞互联网科技
数据库数据公式计算
逍遥西游转移数据库
软件开发中心岗位描述
网络安全考试网站
软件开发 求购
成都软件开发哪家不错
服务器可以有几个端口号
服务器磁盘突然变满
数据库项目实施方案
黑鲨手机无法连接和平精英服务器
管家婆服务器名称在哪里找
网站换服务器要求
管理ns服务器
萤石云服务器无法启动
服务器运行creo很慢
服务器存储价格
求生之路2提示找不到官方服务器
数据库在网站开发中的作用
心目中的网络安全
武平天气预报软件开发
数据库展示网页模板下载
我国网络安全的重要议题
软件开发行业预收账款
邮箱密码破解软件开发
美团网用的什么服务器
什么是网络安全方案设计
endf数据库