黑马程序员技术交流社区

标题: ArrayList、Vector、LinkedList三者的区别? [打印本页]

作者: shilu    时间: 2015-10-14 10:21
标题: ArrayList、Vector、LinkedList三者的区别?
1.  ArrayList、Vector、LinkedList三者的区别?
它们三者都是 List集合的子集合
ArrayList:
  数据结构:  数组
  线程不同步,说明代码执行效率高,有安全隐患
  元素的增删慢, 查找快
  
Vector:
  数据结构: 数组
  线程同步的,说明代码执行效率低, 安全性好
  元素的增删慢, 查找快

LinkedList:
  数据结构:链表
  线程不同步,说明代码执行效率高,有安全隐患
  元素的增删快, 查找慢

作者: shoresmile    时间: 2015-10-14 10:27
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!
inkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2