Java 对比Vector、ArrayList、LinkedList
①引言
在日常生活中能高效的管理和操作数据是非常重要的。Java提供了强大的集合框架,大大提高了开发者的生产力,今天就了解一下有关集合框架方面的问题。
Vector、ArrayList、LinkedList这3者都是实现集合框架的List,也就是所谓的有序集合,因此具体功能也比较近似,比如都可以按照位置进行定位、添加或者删除的操作,都提供迭代器遍历其内容。但因为具体的设计区别,在行为、性能、线程安全等方面。表现又有很大不同。
②Vector
Vector是Java早期提供的线程安全的动态数组,如果不需要线程安全,并不建议选择,毕竟同步是有额外开销的。Vector内部是使用对象数组来保存数据,可以根据需要来自动的增加容量,当数组已满时,会创建新的数组,并copy原有数据。
详细内容请参考 https://www.cnblogs.com/baxianhua/p/9209249.html
③ArrayList
ArrayList是应用更加广泛的动态数组实现,它本身不是线程安全的,所以性能要好很多。与Vector近似,ArrayList也是可以根据需要调整容量,不过两者的调整逻辑有区别,Vector在扩容时会提高一倍,而ArrayList会增加50% .
详细内容请参考https://www.cnblogs.com/baxianhua/p/9211265.html
④LinkedList
是Java提供的双向链表。它不需要象上面两种那样调整容量,它也不是线程安全的。
详细内容请参考https://www.cnblogs.com/baxianhua/p/9225445.html
⑤比较
Vector和ArrayList作为动态数组,其内部元素以数组形式顺序存储,所以非常适合随机访问的场合。除了尾部插入和删除元素,往往性能会较差,比如我们在中间位置插入一个元素,需要移动后面所有元素。而LinkedList进行节点插入删除要高效很多,但是随机访问性能则要比动态数组慢。
转载于:https://www.cnblogs.com/baxianhua/p/9208969.html
Java 对比Vector、ArrayList、LinkedList相关推荐
- java vector arraylist linkedlist用法与区别
首先,它们是list的实现类,大致说一下vector arraylist linkedlist的区别. 1.线程安全来讲, vector是线程安全,arraylist linkedlist线程不安全. ...
- 读List源码之Vector,ArrayList,LinkedList
List ,LinkedList,ArrayList,Vector ArrayList与LinkedList(间接),Vector均直接或间接继承自AbstractList,AbstractList实 ...
- 【java学习】Arraylist和LinkedList使用场景与性能对比
介绍 ArrayList LinkedList 使用场景对比 两个实例: 二分查找 插入元素 总结 介绍 List 的三个子类的特点: ArrayList 底层结构是数组,底层查询快,增删慢. Lin ...
- java集合之列表:ArrayList、Vector、LinkedList
1 package com.jdk7.chapter4; 2 3 import java.util.ArrayList; 4 import java.util.LinkedList; 5 import ...
- ArrayList, LinkedList, Vector - dudu:史上最详解
ArrayList, LinkedList, Vector - dudu:史上最详解 我们来比较一下ArrayList, LinkedLIst和Vector它们之间的区别.BZ的JDK版本是1.7.0 ...
- Vector ArrayList Hashtable HashMap ArrayList LinkedList
1. Vector & ArrayList 1) Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的 ...
- ArrayList,LinkedList,Vector的异同点
先总结下ArrayList和LinkedList的区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayLi ...
- List接口实现类-ArrayList、Vector、LinkedList集合深入学习以及源代码解析
学习List接口实现类 ArrayList Vector LinkedList List接口的实现类中最经常使用最重要的就是这三个:ArrayList.Vector.LinkedList. JDK ...
- ArrayList、Vector、LinkedList的特点和区别
ArrayList.Vector.LinkedList类均在java.util包中,均为可伸缩数组. 1)ArrayList和Vector都是基于存储元素的Object[] array来实现的,它们会 ...
最新文章
- 写文件 —— 将内容按照指定格式写入配置文件(fprintf()函数-》》本机的监听地址列表中port值)
- CNN中各种各样的卷积
- Windows Phone 7 开发积累_04
- 编写易于调试的vc代码
- vs2008+sp1
- 如果SQL Server 配置管理器没有找到就代表安装失败?
- php 数组 没有越界,C++_浅析C语言编程中的数组越界问题,因为C语言不检查数组越界,而 - phpStudy...
- 第一个暴力猴脚本- 抓取携程某个城市所有起飞、到达航班并保存
- 压缩文件并删除源文件
- 旁轴相机,单反相机之间的区别(转)
- python制作猜数字小游戏
- matlab 鼠标画图,在matlab中使用鼠标在GUI上绘图
- 求知若饥,虚心若愚——Stay Hungry, Stay Foolish
- 每日辣评:华为麦芒8溢价太高?百度又有高层即将离职?
- ConcurrentHashMap、HashTable学习
- 中南大学电子信息 单片机_沙漠老师讲专业系列三:电子信息类相关专业解读(1)...
- 小程序之战,泡沫之后鹿死谁手?
- 浅入深SpEL表达式注入漏洞总结
- 前端学习笔记-html-列表标签
- 智能信息处理笔记 遗传算法
热门文章
- Elasticsearch-Jest 配置ES集群源码解读
- Algorithms_算法专项_Bitmap原理及应用
- interface declaration, parcelable declaration, AidlTokenType.import or AidlTokenType.package ...
- mysql 散列存储_什么是数据库散列存储? - 蚂蚁吞大象的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 学习笔记(二)——CSS基础
- python学习笔记(六)——函数的作用域和装饰器
- windows powershell实战指南_【安全研究】powershell在主机中是否存在安全隐患?
- vue就地复用不是更快吗_Vue.js从零开始——组件(1)
- bus.js非父子组件之间通讯
- 服务器可以ping通,Write failed: Broken pipe