vector 插入_Java学习五分钟系列:对比Vector、ArrayList、LinkedList
Java学习五分钟系列,目的是为让大家在短时间内搞清楚一项技术的概念、优缺点和适用场景,想要深入的了解,还需要投入更多的时间。
Java的集合类,值得我们深入的学习,建议大家有时间的话,可以阅读一下源码;并且可以对比一下每个JDK版本中,集合类源码的变化。
今天我带大家简单对比一下Vector、ArrayList、LinkedList。
相同之处
三者都实现了集合框架中的 List接口,它们都是【有序集合】。
它们有些功能也比较相似,例如都提供了按照位置进行查询、新增或者删除,提供了迭代器以遍历其内容等。
不同之处
- Vector :是基于数组实现的,可以根据需要自动扩展容量,当数组满了,会创建新的数组,并Copy原来的数据到新的数组。Vector是线程安全的,如果不考虑线程安全问题,建议不要使用。
- ArrayList:也是基于数组实现的,也可以动态地调整容量,和Vector不同的是,Vector扩容的时候翻倍,ArrayList则是(默认)增加50%。ArrayList不是线程安全的,所以性能要高。
- LinkedList:顾名思义,双向链表,不需要像Vector、ArrayList那样调整容量;LinkedList也不是线程安全的。
优缺点及适用场景
- Vector和ArrayList本质都是动态数组,所以各个元素都是按照顺序存储的,所以很适合随机访问的场景,可以快速的定位到某一个元素。但是在插入和删除的时候,除非是尾部元素,在操作其他元素的时候,性能往往很差(因为要移动其他元素);
- LinkedList在插入和删除时,效率很高,但是随机访问的性能会比Vector和ArrayList差;
- 所以在开发过程中,要根据场景选择使用,操作是偏向于查询,还是偏向于修改和删除;是否要求线程安全。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
vector 插入_Java学习五分钟系列:对比Vector、ArrayList、LinkedList相关推荐
- java分布式架构_Java学习五分钟系列:从单体架构转向分布式架构的难点
Java学习五分钟系列,目的是为让大家在短时间内搞清楚一项技术的概念.优缺点和适用场景,想要深入的了解,还需要投入更多的时间. 分布式架构和单体应用架构相比,可以充分利用多机器的性能优势,提高了系统的 ...
- 《sed的流艺术之四》-linux命令五分钟系列之二十四
[正文开始] 上文接<sed的流艺术之三>-linux命令五分钟系列之二十三 例十 如果设定了很多-e的command,它们的执行顺序是怎样的呢? [rocrocket@rocrocket ...
- 《神探tcpdump第五招》-linux命令五分钟系列之三十九
== [系列文章] <神探tcpdump第一招>-linux命令五分钟系列之三十五 <神探tcpdump第二招>-linux命令五分钟系列之三十六 <神探tcpdump第 ...
- 《gcc五分钟系列》第六节:编译期符号检查
<gcc五分钟系列>第六节:编译期符号检查 上一节,我们说了从源文件到目标文件的编译过程.这一节,我想讨论一下编译期符号检查的问题. 请原谅我实在不知道如何翻译"refe ...
- 《gcc五分钟系列》基础部分结束
<gcc五分钟系列>基础部分结束 我把常用的编译选项都已经介绍完了. 本系列打算休息一段时间. 转载于:https://blog.51cto.com/elephantliu/828 ...
- python每天学习30分钟系列
本篇博客记录的是从2021/6/17起,博主将每天学习30分钟的python,这些博客记录的都是一些比较简单的,后期再不断加强巩固,不想把时间浪费在一些细节上,6个月后,自己独立开发一个功能程序(数据 ...
- 语言列表导出xlxs_学习五分钟,掌握一种新语言。
有没有一种语言,既实用还能够短时间内学会并应用起来?当然有.小阳今天要教给大家的是一种标记语言--Markdown. 经常上网的你,一定有注意到很多网页排版整齐.简洁优美,各级标题区分明显,文章逻辑清 ...
- 《神探tcpdump第四招》-linux命令五分钟系列之三十八
== 本文会是"选项内容"的最后一期讲解,主要会讲讲-w和-r两个选项.tcpdump的选项很多,多达50个,其他我没有涉及的选项,还是要大家自己通过man tcpdump的方式来 ...
- caffe图像分类教程_跟我上手深度学习: 五分钟尝试第一个深度学习(Caffe)训练和图像分类(详细图文步骤)...
申请深度学习的开发环境 Supervessel超能云(www.ptopenlab.com)上可以免费申请深度学习的开发环境.用户可以免费注册一个用户帐号,无须任何信用卡信息,就可以申请. 申请了用户帐 ...
最新文章
- IDA-3D:基于立体视觉的深度感知3D目标检测网络(CVPR2020)
- 我的学习之路_第十八章_SQL语句
- Python变量使用前必须先声明,并且一旦声明就不能在当前作用域内改变其类型————(错)
- k8s组件说明:api server
- faceapp怎么合成未来宝宝照片_宝宝出生后,爸爸们应该如何宣布喜讯,各种官宣文案孕妈赶紧收藏...
- github上java_GitHub上Java的Bloom Bloom实现
- Docker Compose 简介、安装、初步体验
- 大学mysql期末试题_四川大学数据库系统期末试题2014-2015.doc
- Spark Streaming 和 Flink 的对比以及详细描述,图文对比、代码
- aix oracle调整逻辑卷的大小,AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume(示例代码)...
- 蓝桥杯2019年第十届C/C++省赛A组第三题-最大降雨量
- mysql高可用架构 - MHA简介-01
- 聊聊工作与生活的平衡
- 4用计算机显示内存不足,电脑提示内存不足的解决方法总汇
- 【八方位云台控制器】
- lomboz eclipse怎么连接oracle10,Lomboz插件的安装与配置[Eclipse 3.0,3.1.x与3.2.x版本]第一部分...
- Spring之事务传播行为
- mpl代表什么_西方经济学中MPL,APL,MPK分别是什么意思
- 第十一届蓝桥杯b组(10月真题)
- QMediaplayer详解以及简易音乐播放实现
热门文章
- IntelliJ IDEA 2020.1 正式发布,15 项重大特性、官方支持中文了! | 原力计划
- 清华周界详解《基于图神经网络的事实验证》 | 百万人学 AI
- Wi-Fi 6 「破茧成蝶」,高通全面布局端到端最佳解决方案
- RS 纠删码为什么可以提高分布式存储可靠性?| 原力计划
- 如何用 CNN 玩转 AlphaGo 版的五子棋?
- LG 出售中国总部大楼;苹果延长疫情期间 Apple 设备保修期;Linux 5.6 新特性 | 极客头条...
- 2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
- 我有一辆机器人小车,怎么让它跑起来,还会避障、目标跟踪、路径规划?
- 如何成为一枝独秀的技术领导者?
- 高薪、稀缺人才必备哪些技能?BDTC大会告诉你,附最新议程!