List集合-03.Vector
2024-09-27 11:45:57
3.Vector
3.1 UML图
3.2 Vector的特点
- Object的数组存储元素
- 默认初始大小为10
public Vector() {
this(10);
}
- 线程安全,可以看到所有的数据操作方法都有锁synchronize
- 新增了capacityIncrement,每次新增的容量增加参数;默认是0,可以自己指定
- 其他的操作和ArrayList特别相近
4.总结
常用的List集合,ArrayList,LinkedList,Vector
1.ArrayList 和Vector 两个内部存储数据都是Object数组,方法相近;
- Vector是线程安全的,ArrayList是线程不安全的,但是可以使用=Collections.synchronizedList(list)方法==,保证ArrayList线程安全;
- Vector增加了扩容增加的参数,而ArrayList没有指定。
- Vector的初始容量为10,ArrayList没有初始值,但是默认初始化容器最小值为10;
2.ArrayList 和 LinkedList 的区别:
- 存储数据的格式是不同的,LinkedList是通过内部类Node存储的双向链表,ArrayList是数组
- ArrayList数据是add方法是在后面增加,LinkedList提供了首增加
- ArrayList每次增加都要判断容器容量,LinkedList只需要新增节点,相对效率更高
- LinkedList 删除时,要根据删除index二分逐个遍历,所以删除的速度很慢,ArrayList因为时数组,所以想读效率很高
- 插入数据时,LinkedList需要遍历找到index位置的元素,改变next和pre指向。ArrayList,只需要校验容量,Array.copyOf()数组,当数据量较大时效率更高;
最新文章
- Android-Notification-简单的demo
- 什么是linux的ftp
- Windows—JDK安装与环境变量配置
- 聊聊 App Store 的产品和推广运营攻略
- mybatis模板
- RHEL7磁盘分区挂载和格式化
- Cordova自定义插件
- MySQL show status命令参数
- HDU-1232-畅通工程(并查集)
- mybatis中oracle实现分页效果
- 【读书笔记】【深入理解ES6】#10-改进的数组功能
- Log4j扩展使用--输出地Appender
- LeetCode笔记:39. Combination Sum
- [Swift]扩展UIImage :获取图片指定像素的颜色值
- Intent Activity跳转 传递数据 Bundle
- Madgwick算法详细解读
- 解决/usr/bin/ld: cannot find -lssl
- centOS7关闭防火墙的命令
- MII、GMII、RMII、SGMII、XGMII
- 将PHP程序中返回的JSON格式数据用gzip压缩输出