List还有一个LinkedList的实现,它是一个基于链表实现的List类,对于顺序访问集合中的元素进行了优化,特别是当插入、删除元素时速度非常快。因为LinkedList即实现了List接口,也实现了Deque接口(双向队列),Deque接口是Queue接口的子接口,它代表一个双向列表,Deque接口里定义了一些可以双向操作队列的方法:

  • void addFirst(Object e):将制定元素插入该双向队列的开头。
  • void addLast(Object e):将制定元素插入该双向队列的末尾。
  • Iterator descendingIterator():返回以该双向队列对应的迭代器,该迭代器将以逆向顺序来迭代队列中的元素。
  • Object getFirst():获取、但不删除双向队列的第一个元素。
  • Object getLast(): 获取、但不删除双向队列的最后一个元素。
  • boolean offerFirst(Object e): 将指定的元素插入该双向队列的开头。
  • boolean offerLast(Object e): 将指定的元素插入该双向队列的末尾。
  • Object peekFirst(): 获取、但不删除该双向队列的第一个元素:如果此双端队列为空,则返回null。
  • Object peekLast():获取、但不删除该双向队列的最后一个元素:如果此双端队列为空,则返回null。
  • Object pollFirst():获取、并删除该双向队列的第一个元素:如果此双端队列为空,则返回null。
  • Object pollLast():获取、并删除该双向队列的最后一个元素:如果此双端队列为空,则返回null。
  • Object pop():pop出该双向队列所表示的栈中第一个元素。
  • void push(Object e):将一个元素push进该双向队列所表示的栈中(即该双向队列的头部)。
  • Object removerFirst():获取、并删除该双向队列的最后一个元素。
  • Object removeFirstOccurrence(Object o):删除该双向队列的第一次的出现元素o。
  • Object removeLast():获取、并删除该双向队列的最后一个元素。
  • Object removeLastOccurrence(Object o):删除该双向队列的最后一次出现的元素o。
  • 关于使用List集合的几点建议:

    • 如果需要遍历List集合元素,对应ArrayList、Vector集合,则应该使用随机访问方法(get)来遍历集合元素,这样性能更好。对应LinkedList集合,则应采用迭代器(Iterator)来遍历集合元素。
    • 如果需要经常执行插入、删除操作来改变Lst集合大小,则应该使用LinkedList集合,而不是ArrayList。
    • 如果多条线程需要同时访问List集合中的元素,可以考虑使用Vector这个同步实现。

转载于:https://www.cnblogs.com/dahaoheshan/p/6672223.html

LinkedList实现类相关推荐

  1. Java集合(4)--List接口及其实现类ArrayList、LinkedList和Vector

    文章目录 List接口概述 List接口常用方法 ArrayList实现类 LinkedList实现类 Vector实现类 List接口概述 List集合类中元素有序.且可重复,集合中的每个元素都有其 ...

  2. Java集合---LinkedList源码解析

    一.源码解析 1. LinkedList类定义 2.LinkedList数据结构原理 3.私有属性 4.构造方法 5.元素添加add()及原理 6.删除数据remove() 7.数据获取get() 8 ...

  3. LinkedList实现原理

    一.源码解析 1. LinkedList类定义. public class LinkedList<E>extends AbstractSequentialList<E>impl ...

  4. java源码阅读LinkedList

    1类签名与注释 public class LinkedList<E>extends AbstractSequentialList<E>implements List<E& ...

  5. ArrayList、LinkedList、 Vector、Map 用法比较

    ArrayList和Vector是采用数组方式存储数据,此数组元素总数大于实际存储的数据个数以便增加和插入元素,二者都允许直接序号索引元素,但是插入数据要移动数组元素等内存操作,所以它们索引数据快.插 ...

  6. 详解java集合之LinkedList——底层实现是头尾、双向节点,尽情地问我有没有看过集合源码吧!

    LinkedList底层实现--头尾.双向节点    LinkedList的类继承结构图 1. LinkedList对象的创建 1.1 参数为空的构造方法的方法体为空. 1.2 Collection对 ...

  7. java linkedlist源码_Java集合之LinkedList源码分析

    一.LinkedList简介 LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的. ps:这里有一个问题,就是关于实现LinkedList的数据结构是否 ...

  8. Collection 和 Map接口及其实现类总结

    Collection 和 Map接口及其实现类总结 Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Ele ...

  9. 说下List接口下的那些类

    List是在面试中经常会问的一点,在我们面试中知道的仅仅是List是单列集合Collection下的一个实现类, List的实现接口又有几个,一个是ArrayList,还有一个是LinkedList, ...

最新文章

  1. LeetCode: 38. Count and Say
  2. Android成长之路-实现简单动画
  3. Python中的argparse模块
  4. Qt 生成 ui 对应的 h 文件和 cpp 文件的方法
  5. 最长等差数列_最长等差数列分析
  6. python简单语法_python的基本语法(一)
  7. idea html 错误提示,Idea 代码编辑错误不飘红提示
  8. 0. SQL Server监控清单
  9. python中pass的用法_python学习之getpass模块使用
  10. Google Cloud Fundamentals简介
  11. html+jQuery实现拖动滑块图片拼图验证码插件,移动端适用
  12. 直博人数远大于硕士人数,清华计算机系到底有多强?
  13. ET7.0 腾讯云centos部署
  14. 合工大计算机系汪教授,合肥工业大学计算机与信息学院导师介绍:洪日昌
  15. Mac自启动程序管理
  16. 【路径规划】基于遗传算法求解多式联运运输问题matlab源码
  17. TinyIM流程之删除好友
  18. 吴永辉教授2021年讲课1-2
  19. DAX 第八篇:【翻译】数据沿袭(Data Lineage )
  20. 右键菜单“新建”的修改

热门文章

  1. pytorch tensor 梯度
  2. pytorch torch.reshape
  3. pytorch torchvision.transforms.CenterCrop
  4. python sqlite row
  5. TensorFLow RCNN
  6. 翼城中学2021高考成绩查询,临汾中考分数线预测2021
  7. 备份域控制器AD 保护的最佳实践(第 1 部分)
  8. 专有网络 VPC > 快速入门 > 网络规划
  9. Jquery学习总结(2)——jQuery Ajax用法详解
  10. python 命令行 模块_深入浅析Python 命令行模块 Click