ArrayList、LinkedList、Vector区别
ArrayList、LinkedList、Vector均为可伸缩数组,即可以动态改变长度的数组。
比较ArrayList和Vector:
1. 共同点:
ArrayList和Vector都是基于Object[] array来实现的,它们会在内存中开辟出一块连续的内存,正是因为数据存储是连续的,所以,它们支持通过下标来访问元素,这种访问方式比较快。但在插入或删除时需要移动容器中的元素,所以,对数据的插入和删除操作执行的比较慢。
2. 区别:
(1) ArrayList默认扩充为原来的1.5倍(没有提供设置空间扩充的方法),Vector默认扩充为原来的2倍(每次扩充空间的大小是可以设置的)。
(2) 两者的最大区别是,Vector是线程安全的,而ArrayList不是线程安全的。
(3) 正是因为Vector提供了线程安全机制,所以在性能上要略逊于ArrayList。
LinkedList:
(1) 采用的是双向列表来实现的。
(2) 访问要从列表头开始遍历,所以随意访问的效果比较低;但插入、删除时不需要对数据进行移动,所以插入、删除的效率比较高。
(3) LinkedList是非线程安全的。
总结:
(1) 对数据的主要操作是索引或只在集合的末端增加、删除元素时,使用ArrayList或Vector效率比较高;
(2) 对数据的主要操作是为指定位置的插入或删除操作时,使用LinkedList;
(3) 当在多线程中使用容器时,选择Vector比较安全。
ArrayList、LinkedList、Vector区别的更多相关文章
- List的三个子类ArrayList,LinkedList,Vector区别
一:List的三个子类的特点 ArrayList: 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高.Vector: 底层数据结构是数组,查询快,增删慢. 线程安全,效率低.Vector相对A ...
- java类集框架(ArrayList,LinkedList,Vector区别)
主要分两个接口:collection和Map 主要分三类:集合(set).列表(List).映射(Map)1.集合:没有重复对象,没有特定排序方式2.列表:对象按索引位置排序,可以有重复对象3.映射: ...
- ArrayList LinkedList Vector
ArrayList是基于数组实现的,没有容量的限制. 在删除元素的时候,并不会减少数组的容量大小,可以调用ArrayList的trimeToSize()来缩小数组的容量. ArrayList, Lin ...
- ArrayList, LinkedList, Vector - dudu:史上最详解
ArrayList, LinkedList, Vector - dudu:史上最详解 我们来比较一下ArrayList, LinkedLIst和Vector它们之间的区别.BZ的JDK版本是1.7.0 ...
- ArrayList与Vector区别
ArrayList与Vector区别表 ArrayList Vector 1.实现原理:采用动态对象数组实现,默认构造方法创建了一个空数组 1.实现原理:采用动态数组对象实现,默认构造方法创建了一个大 ...
- Vector,ArrayList, LinkedList的区别
1.Vector.ArrayList都是以类似数组的形式存储在内存中,LinkedList则以链表的形式进行存储. 2.List中的元素有序.允许有重复的元素,Set中的元素无序.不允许有重复元素. ...
- ArrayList,LinkedList,vector的区别
1,Vector.ArrayList都是以类似数组的形式存储在内存中,LinkedList则以链表的形式进行存储. 2.List中的元素有序.允许有重复的元素,Set中的元素无序.不允许有重复元素. ...
- ArrayList LinkedList Vector之间的区别
List主要有ArrayList,LinkedList和vector三种实现.这三种都实现了List接口,使用方式也很相似,主要区别在于其实现方式的不同! 这三种数据结构中,ArrayList和Vec ...
- ArrayList和Vector区别
java基础之ArrayList和Vector的主要区别: List接口下一共实现了三个类:ArrayList,Vector,LinkedList. LinkedList主要保持数据的插入顺序的时候使 ...
- 集合类源码(二)Collection之List(ArrayList, LinkedList, Vector)
ArrayList 功能 完全命名 public class ArrayList<E> extends AbstractList<E> implements List<E ...
随机推荐
- 【leetcode】1080. Insufficient Nodes in Root to Leaf Paths
题目如下: Given the root of a binary tree, consider all root to leaf paths: paths from the root to any l ...
- Idea配置注释
Idea配置注释 方法注释 点击+号 选择2 template Group 自己随便填个有意义的name(如图的mn就是我填写的) 点击你上步填写的name (我的是mn),然后点击+选择1 Live ...
- Django2 + python3 上传图片
. ├── db.sqlite3 ├── manage.py ├── myImg │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init_ ...
- JAVA WEB怎么实现大文件上传
javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 改进后的代码不需要form标签,直 ...
- zabbix4.0 percona插件实现监控mysql
percona是一款能够详细监控zabbix MySQL的插件 官方下载percona插件 wget https://www.percona.com/downloads/percona-monitor ...
- springboot版本依赖
springboot2.x及以后依赖于jdk1.8及以上. 如图:
- Android keystore 密码找回
昨天准备给自己的应用发布一个新版本,在apk打包时,发现之前的用的keystore密码忘了. 蛋碎了一地,我把我所能想到的密码都试了一遍(注:我平常在各个门户网站注册基本上用的都是那几个字母和数字组合 ...
- 2017工业软件top100
- GoldenGate—日常管理
Classic Replicat Mode (一)源端和目标端新增加复制表 根据需求将生产库中PROCESS_LOG表通过ogg同步到测试库中:操作步骤: 当GoldenGate仅打开DML复制时,源 ...
- Windows命令学习
总: 1.window dos命令不区分大小写 2.指令参数 /a -a 等价 更倾向于 / 3.命令有疑问: CMD输入help 或者单条命令 /? help time /? 用到的实用命令总 ...