18 linkedList

Posted cathy_mu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了18 linkedList相关的知识,希望对你有一定的参考价值。

实现了list和deque的双端链表。线程不安全。

//如果想使LinkedList变成线程安全的
//可以调用静态类Collections类中的synchronizedList方法:

List list=Collections.synchronizedList(new LinkedList(...));

addAll将集合从指定位置开始插入

  • 检查index范围是否在size之内
  • toArray()方法把集合的数据存到对象数组中
  • 得到插入位置的前驱和后继节点
  • 遍历数据,将数据插入到指定位置

获取头尾结点

  • getFirst(),element(),peek(),peekFirst() 这四个获取头结点方法的在链表为空时,getFirst() 和element() 抛出NoSuchElementException异常(element()方法的内部就是使用getFirst()实现的)。
  • getLast() 方法在链表为空时,会抛出NoSuchElementException,而peekLast() 则不会

根据对象得到索引的办法

  • indexOf从头遍历
  • lastIndexOf从尾遍历

检查链表是否包含某对象

  • contains 从头遍历

删除方法

  • remove() ,removeFirst(),pop(): 删除头节点
  • removeLast(),pollLast(): 删除尾节点
  • remove(Object o): 删除指定元素 从头遍历
  • unlink(Node x) 方法
  • remove(int index):删除指定位置的元素 先确定没有超过范围 再删除

以上是关于18 linkedList的主要内容,如果未能解决你的问题,请参考以下文章

CSP核心代码片段记录

vscode代码片段建议bug

如何在 Javadoc 中使用 @ 和 符号格式化代码片段?

如何从片段中调用 getSupportFragmentManager()?

Python snippet(代码片段)

重新创建片段布局