乐趣区

关于java: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):删除指定地位的元素 先确定没有超过范畴 再删除
退出移动版