LinkedList实现类
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实现类相关推荐
- Java集合(4)--List接口及其实现类ArrayList、LinkedList和Vector
文章目录 List接口概述 List接口常用方法 ArrayList实现类 LinkedList实现类 Vector实现类 List接口概述 List集合类中元素有序.且可重复,集合中的每个元素都有其 ...
- Java集合---LinkedList源码解析
一.源码解析 1. LinkedList类定义 2.LinkedList数据结构原理 3.私有属性 4.构造方法 5.元素添加add()及原理 6.删除数据remove() 7.数据获取get() 8 ...
- LinkedList实现原理
一.源码解析 1. LinkedList类定义. public class LinkedList<E>extends AbstractSequentialList<E>impl ...
- java源码阅读LinkedList
1类签名与注释 public class LinkedList<E>extends AbstractSequentialList<E>implements List<E& ...
- ArrayList、LinkedList、 Vector、Map 用法比较
ArrayList和Vector是采用数组方式存储数据,此数组元素总数大于实际存储的数据个数以便增加和插入元素,二者都允许直接序号索引元素,但是插入数据要移动数组元素等内存操作,所以它们索引数据快.插 ...
- 详解java集合之LinkedList——底层实现是头尾、双向节点,尽情地问我有没有看过集合源码吧!
LinkedList底层实现--头尾.双向节点 LinkedList的类继承结构图 1. LinkedList对象的创建 1.1 参数为空的构造方法的方法体为空. 1.2 Collection对 ...
- java linkedlist源码_Java集合之LinkedList源码分析
一.LinkedList简介 LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的. ps:这里有一个问题,就是关于实现LinkedList的数据结构是否 ...
- Collection 和 Map接口及其实现类总结
Collection 和 Map接口及其实现类总结 Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Ele ...
- 说下List接口下的那些类
List是在面试中经常会问的一点,在我们面试中知道的仅仅是List是单列集合Collection下的一个实现类, List的实现接口又有几个,一个是ArrayList,还有一个是LinkedList, ...
最新文章
- LeetCode: 38. Count and Say
- Android成长之路-实现简单动画
- Python中的argparse模块
- Qt 生成 ui 对应的 h 文件和 cpp 文件的方法
- 最长等差数列_最长等差数列分析
- python简单语法_python的基本语法(一)
- idea html 错误提示,Idea 代码编辑错误不飘红提示
- 0. SQL Server监控清单
- python中pass的用法_python学习之getpass模块使用
- Google Cloud Fundamentals简介
- html+jQuery实现拖动滑块图片拼图验证码插件,移动端适用
- 直博人数远大于硕士人数,清华计算机系到底有多强?
- ET7.0 腾讯云centos部署
- 合工大计算机系汪教授,合肥工业大学计算机与信息学院导师介绍:洪日昌
- Mac自启动程序管理
- 【路径规划】基于遗传算法求解多式联运运输问题matlab源码
- TinyIM流程之删除好友
- 吴永辉教授2021年讲课1-2
- DAX 第八篇:【翻译】数据沿袭(Data Lineage )
- 右键菜单“新建”的修改