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()数组,当数据量较大时效率更高;

最新文章

  1. Android-Notification-简单的demo
  2. 什么是linux的ftp
  3. Windows—JDK安装与环境变量配置
  4. 聊聊 App Store 的产品和推广运营攻略
  5. mybatis模板
  6. RHEL7磁盘分区挂载和格式化
  7. Cordova自定义插件
  8. MySQL show status命令参数
  9. HDU-1232-畅通工程(并查集)
  10. mybatis中oracle实现分页效果
  11. 【读书笔记】【深入理解ES6】#10-改进的数组功能
  12. Log4j扩展使用--输出地Appender
  13. LeetCode笔记:39. Combination Sum
  14. [Swift]扩展UIImage :获取图片指定像素的颜色值
  15. Intent Activity跳转 传递数据 Bundle
  16. Madgwick算法详细解读
  17. 解决/usr/bin/ld: cannot find -lssl
  18. centOS7关闭防火墙的命令
  19. MII、GMII、RMII、SGMII、XGMII
  20. 将PHP程序中返回的JSON格式数据用gzip压缩输出

热门文章

  1. cuda 9.0
  2. python3 后台维护软件
  3. python3 优惠券查询GUI程序
  4. 智能家居巨头 Aqara 基于 KubeSphere 打造物联网微服务平台
  5. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.0)- FlexSPI NOR启动时间(RT1170)
  6. docker中mongdb常用操作
  7. SpringMVC的url-pattern配置及原理剖析
  8. php 整数转罗马数字
  9. mac App 破解之路六 studio 3t
  10. 嵌入式QT开发视频教程-供参考