这三者都可以随机访问,也就是支持通过索引查找数据。 都是有序(可以实现元素怎么进怎么出)

Vector和ArrayList比较

相同之处

1 它们都是List

它们都继承于AbstractList,并且实现List接口。

3 它们都是通过数组实现的,本质上都是动态数组

4 它们的默认数组容量是10

不同之处

1 线程安全性不一样

ArrayList是非线程安全;
   而Vector是线程安全的,它的函数都是synchronized的,即都是支持同步的。
   ArrayList适用于单线程,Vector适用于多线程。

2 对序列化支持不同

ArrayList支持序列化,而Vector不支持;即ArrayList有实现java.io.Serializable接口,而Vector没有实现该接口。

3 虽然默认容量都是10,但是Vector在构造函数中就初始化数组了,ArrayList是在add方法中,第一次添加元素时才初始化数组。

4 容量增加方式不同

逐个添加元素时,若ArrayList容量不足时,“新的容量”=“原始容量x3/2 ”。
   而Vector的容量增长与“增长系数有关”,若指定了“增长系数”,且“增长系数有效(即,大于0)”;那么,每次容量不足时,“新的容量”=“原始容量+增长系数”。若增长系数无效(即,小于/等于0),则“新的容量”=“原始容量 x 2”。

ArrayList和LinkedList比较

相同:

1.它们都是List,可以通过索引访问。

2.有序(可以实现怎么进怎么出)

不同:

1.底层实现不同:ArrayList是数组,LinkedList是双向链表

2.ArrayList要扩容,linkedlist不用

最新文章

  1. ros下boost移植
  2. eclipse基础及开发插件
  3. 课堂随笔 set (集合)
  4. BRD
  5. AngularJS快速入门指南02:介绍
  6. CentOS下搭建使用gitlab 和tortoiseGit使用
  7. jeasyui datagrid 使用记
  8. Android开发环境的安装 Eclipse
  9. 从一个开发的角度看负载均衡和LVS(转)
  10. Android - 安装 windows 7 安装 Android SDK 的时候出现的问题!(Connection to https://dl-ssl.google.com refused)
  11. 微信小程序简易教程
  12. Mac 安装工具包brew
  13. CSS.01 -- 选择器及相关的属性文本、文字、字体、颜色、
  14. ORA-01031:insufficient privileges解决方法
  15. SpringBoot集成Security,JWT,Swagger全分析
  16. FreemarkerJavaDemo【Android将表单数据生成Word文档的方案之一(基于freemarker2.3.28,只能java生成)】
  17. 报Error creating bean with name 'dataSource' defined in class path resource 报错解决办法
  18. python 图像处理,画一个正弦函数
  19. AngularJS的Scope和Digest
  20. 当我们用自定义的类对象作为key时,我们必须在程序中覆盖HashCode()和equals()。

热门文章

  1. Kafka,Mq,Redis作为消息队列有何差异?
  2. jwt-dotnet使用示例
  3. js原形链
  4. ubuntu下QtCreator启动无响应问题解决
  5. UISearchBar 自定义处理
  6. Qt 学习之路 2(58):编辑数据库外键
  7. 使用Swagger生成简单接口文档
  8. tornado 07 数据库—ORM—SQLAlchemy—查询
  9. [BZOJ 5415] 归程
  10. logstash根据配置文件启动时,报异常