首页 > 编程语言 > 详细

Java学习篇之---LinkedList

时间:2015-06-06 09:10:16      阅读:240      评论:0      收藏:0      [点我收藏+]

LinkedList

java.util.LinkedList是双向链表。

LinkedList的两个remove方法,remove(Object)和remove(int)的时间复杂度都是O(n),在链表元素很多 并且没有索引可用的情况下,LinkedList也并不适合做随机增删元素。在对性能特别敏感的场景下,还是需要自己实现专用的双向链表结构,真正实现 O(1)级别的随机增删。更进一步,jdk5引入的ConcurrentLinkedQueue是一个非阻塞的线程安全的双向队列实现。

理论上说,双向链表的删除的时间复杂度是O(1),你只需要将要删除的节点的前节点和后节点相连,然后将要删除的节点的前节点和后节点置为null即可:

//伪代码
  node.prev.next=node.next;
  node.next.prev=node.prev;
  node.prev=node.next=null;

注意:

ArrayList和LinkedList的区 别之在什么场景下用:

大家都会说LinkedList随机增删多的场景比较合适,而ArrayList的随机访问多的场景比较合适。

Java学习篇之---LinkedList

原文:http://blog.csdn.net/a_little_e/article/details/46383463

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!