ArrayList ,LinkedList,Vector 区别和联系

从上面的类层次结构图中,我们可以发现他们都实现了List接口,它们使用起来非常相似。区别主要在于它们各自的实现,不同的实现导致了不同的性能和不同的操作。

ArrayList是为可变数组实现的,当更多的元素添加到ArrayList的时候,它的大小会动态增大。它的元素可以通过get/set方法直接访问,因为ArrayList本质上是一个数组。

LinkedList是为双向链表实现的,添加、删除元素的性能比ArrayList好,但是get/set元素的性能较差。

Vector与ArrayList相似,但是它是同步的。

如果你的程序是线程安全的,ArrayList是一个比较好的选择。当更多的元素被添加的时候,Vector和ArrayList需要更多的空间。Vector每次扩容会增加一倍的空间,而ArrayList增加50%。

注意:ArrayList默认的初始空间大小相当的小,通过构造函数去初始化一个更大的空间是一个好习惯,可以避免扩容开销。

StringBuilder > StringBuffer > String 区别

String:字符串常量

StringBuffer:字符创变量 线程安全的

StringBuilder:字符创变量 线程非安全的

对于三者使用的总结: 1.如果要操作少量的数据用 = String

           2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder

           3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
          

HashMap LinkedHashMap TreeMap

Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。
HashMap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null;允许多条记录的值为Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力。
LinkedHashMap LinkedHashMap也是一个HashMap,但是内部维持了一个双向链表,可以保持顺序
TreeMap 不仅可以保持顺序,而且可以用于排序

ArrayList ,LinkedList,Vector,StringBuilder,StringBuffer ,String,HashMap,LinkedHashMap,TreeMap相关推荐

  1. 【JavaSE】String类总结,StringBuilder、StringBuffer、String的区别讲解

    文章目录 String对象的构造 String类的一些常用方法 求字符串的长度 字符串判空 字符串对象的比较 字符串对象的查找 字符串对象的转化 字符串对象的截取 字符串对象的替换 字符串对象的拆分 ...

  2. 2.Java中String,StringBuilder以及StringBuffer的关系与区别

    String     StringBuffer     StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...

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

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

  4. ArrayList,LinkedList,Vector的异同点

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

  5. Java String,StringBuilder和StringBuffer的区别 StringBuilder StringBuffer String

    可以证明,字符串操作是计算机程序设计中最常见的行为. String:不可变的对象,对String对象进行改变的时候其实都等同于生成了一个新的String对象,然后将引用指向新的String对象,原St ...

  6. 类型的方法,以及关于Stringbuffer和String builder的相关补充

    xxxValue() 方法用于将 Number 对象转换为 xxx 数据类型的值并返回. 相关的方法有: 类型 方法及描述 byte byteValue() : 以 byte 形式返回指定的数值. a ...

  7. StringBuilder、StringBuffer、String区别

    相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天重新把这个概念给大家复习一下,顺便牵出 J2SE5.0 ...

  8. StringBuilder 、StringBuffer 、 String

    2019独角兽企业重金招聘Python工程师标准>>> 一.三者在执行速度方面的比较: StringBuilder >  StringBuffer  >  String ...

  9. Java核心API -- 2(String、StringBuilder、StringBuffer)

    1. String字符串 1)String类型介绍 String类采用final修饰,String对象为不可变对象,一旦在内存中创建,内容不能发生变化,若要对字符串内容改变,那么就会创建新对象. St ...

最新文章

  1. 通过MageUi.exe修改通过ClickOnce发布过的WPF browser application 配置文件
  2. 机器学习--多元线性回归
  3. 将数据转化为API,OpenDataSoft获540万美元A轮融资
  4. leetcode-12-整数转罗马数字
  5. 如果创业遍地,你觉得会是怎么样的景象
  6. Play framework(二)
  7. 终极算法 机器学习和人工智能如何重塑世界
  8. 十个实用的谷歌搜索小技巧
  9. [统计学理论基础] 统计方法—F检验
  10. 大学计算机考试59分,大学期末考59分,你会找老师理论吗?很多人都猜错
  11. pycharm配色方案
  12. 了解C语言中的exec函数家族
  13. 基于MAX2671设计的400Mhz混频器
  14. 如何用eclipse读取.txt文件
  15. oracle中job_queue_processes 表,参数job_queue_processes与Oracle jobs - 一沙弥的世界
  16. 图书信息管理系统c语言txt,小型图书信息管理系统(C语言)
  17. 通往真理的最短路径 - 【复数】科普/详解
  18. Python爬取热门城市火车票信息
  19. 创建三维空间平面-python笔记
  20. Connection closed by foreign host原因ip冲突及解决办法

热门文章

  1. Eclipse SVN 提交代码,出现Locked情况,问题分析
  2. echarts 水球图 自定义水球颜色
  3. 100 道 JavaScript 面试题及答案
  4. autoCAD 控制应用程序窗口 和 图形窗口
  5. 【黑马程序员】 学习笔记 - Java新技术 - 注解
  6. 推广新网站的八种有效方法
  7. 忍不住了,还是升级了Waline
  8. 失望,太失望了北京奥运男子110米栏第1轮 刘翔旧伤复发退赛
  9. ubuntu16.04安装配置fastai 0.7
  10. ARMv8-A编程指导之big.LITTLE技术(2)