ArrayList和LinkedList的介绍以及区别

ArrayList

ArrayList:底层是动态数组ArrayList默认初始大小为10,默认扩容大小为1.5倍。数组

线程不安全。因此ArrayList的出现替代了Vector,可是查询的速度很快,增长和删除很是慢。安全

这个是由于ArrayList的增长和删除须要新创建一个数组去实现,就把定义一个新集合,把要增长的元素添加在新集合相应的位置之后,再把原来的旧集合内的元素复制过来,而后再返回新集合的地址,删除和添加的步骤差很少。数据结构

LinkedList

LinkedList:底层结构是链表数据结构,LinkedList将元素添加到链表的末尾,无须扩容spa

线程不安全的,同时对元素的增删操做效率很高。线程

LinkedList 采用的将对象存放在独立的空间中,并且在每一个空间中还保存下一个连接的索引  ,可是缺点就是查找很是麻烦 、对象

要丛第一个索引开始而后依次向后去查找、直到找到所查找的元素。索引

  • 使用:
  • 若是查询多,增删少数组的特性,建议用ArrayList。
  • 若是查询少,增删多,建议用LinkedList。
相关文章
相关标签/搜索