①引言

在日常生活中能高效的管理和操作数据是非常重要的。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相关推荐

  1. java vector arraylist linkedlist用法与区别

    首先,它们是list的实现类,大致说一下vector arraylist linkedlist的区别. 1.线程安全来讲, vector是线程安全,arraylist linkedlist线程不安全. ...

  2. 读List源码之Vector,ArrayList,LinkedList

    List ,LinkedList,ArrayList,Vector ArrayList与LinkedList(间接),Vector均直接或间接继承自AbstractList,AbstractList实 ...

  3. 【java学习】Arraylist和LinkedList使用场景与性能对比

    介绍 ArrayList LinkedList 使用场景对比 两个实例: 二分查找 插入元素 总结 介绍 List 的三个子类的特点: ArrayList 底层结构是数组,底层查询快,增删慢. Lin ...

  4. java集合之列表:ArrayList、Vector、LinkedList

    1 package com.jdk7.chapter4; 2 3 import java.util.ArrayList; 4 import java.util.LinkedList; 5 import ...

  5. ArrayList, LinkedList, Vector - dudu:史上最详解

    ArrayList, LinkedList, Vector - dudu:史上最详解 我们来比较一下ArrayList, LinkedLIst和Vector它们之间的区别.BZ的JDK版本是1.7.0 ...

  6. Vector ArrayList Hashtable HashMap ArrayList LinkedList

    1. Vector & ArrayList 1)  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的 ...

  7. ArrayList,LinkedList,Vector的异同点

    先总结下ArrayList和LinkedList的区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayLi ...

  8. List接口实现类-ArrayList、Vector、LinkedList集合深入学习以及源代码解析

    学习List接口实现类 ArrayList  Vector  LinkedList List接口的实现类中最经常使用最重要的就是这三个:ArrayList.Vector.LinkedList. JDK ...

  9. ArrayList、Vector、LinkedList的特点和区别

    ArrayList.Vector.LinkedList类均在java.util包中,均为可伸缩数组. 1)ArrayList和Vector都是基于存储元素的Object[] array来实现的,它们会 ...

最新文章

  1. 写文件 —— 将内容按照指定格式写入配置文件(fprintf()函数-》》本机的监听地址列表中port值)
  2. CNN中各种各样的卷积
  3. Windows Phone 7 开发积累_04
  4. 编写易于调试的vc代码
  5. vs2008+sp1
  6. 如果SQL Server 配置管理器没有找到就代表安装失败?
  7. php 数组 没有越界,C++_浅析C语言编程中的数组越界问题,因为C语言不检查数组越界,而 - phpStudy...
  8. 第一个暴力猴脚本- 抓取携程某个城市所有起飞、到达航班并保存
  9. 压缩文件并删除源文件
  10. 旁轴相机,单反相机之间的区别(转)
  11. python制作猜数字小游戏
  12. matlab 鼠标画图,在matlab中使用鼠标在GUI上绘图
  13. 求知若饥,虚心若愚——Stay Hungry, Stay Foolish
  14. 每日辣评:华为麦芒8溢价太高?百度又有高层即将离职?
  15. ConcurrentHashMap、HashTable学习
  16. 中南大学电子信息 单片机_沙漠老师讲专业系列三:电子信息类相关专业解读(1)...
  17. 小程序之战,泡沫之后鹿死谁手?
  18. 浅入深SpEL表达式注入漏洞总结
  19. 前端学习笔记-html-列表标签
  20. 智能信息处理笔记 遗传算法

热门文章

  1. Elasticsearch-Jest 配置ES集群源码解读
  2. Algorithms_算法专项_Bitmap原理及应用
  3. interface declaration, parcelable declaration, AidlTokenType.import or AidlTokenType.package ...
  4. mysql 散列存储_什么是数据库散列存储? - 蚂蚁吞大象的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  5. 学习笔记(二)——CSS基础
  6. python学习笔记(六)——函数的作用域和装饰器
  7. windows powershell实战指南_【安全研究】powershell在主机中是否存在安全隐患?
  8. vue就地复用不是更快吗_Vue.js从零开始——组件(1)
  9. bus.js非父子组件之间通讯
  10. 服务器可以ping通,Write failed: Broken pipe