这篇文章将为大家详细讲解有关如何用源码分析LinkedList,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。LinkedList继承了AbstractSequentialList,主要方法通过迭代器实现。LinkedList实现了List;所以它是一个队列,支持添加、删除、修改、遍历等操作。LinkedList实现了Deque;能将它可以当做双端队列进行使用。LinkedList实现了Cloneable接口,重写了clone方法,因此可以进行克隆。LinkedList实现了Serializable接口,因此可以进行序列化。LinkedList的操作是非线程安全的双向链表的具体节点类,每个节点每个节点又包含三个变量:item
保存当前节点的具体数据prev
保存当前节点的上一个节点next
保存当前节点的下一个节点集合添加元素方法主要有以下几个方法:在集合头部添加元素,通过linkFirst
方法实现;如:addFirst(E e)
、offerFirst(E e)
、push(E e)
。在集合尾部添加元素,通过linkLast
方法实现;如:add(E e)
、addLast(E e)
、offer(E e)
、offerLast(E e)
。在集合指定位置添加元素;如:add(int index, E element)
。在集合中添加新的集合;如:addAll(Collection extends E> c)
、addAll(int index, Collection extends E> c)
。first
,再根据首部节点生成新的首部节点newNode
如果原首部节点first
为空,那么尾部节点也为newNode
,否则设置原节点的上一个为newNode
last
,再根据尾部节点生成新的尾部节点newNode
如果原尾部节点last
为空,那么首部节点也为newNode
,否则设置原节点的下一个为newNode
linkLast(E e)
不是最后的位置,则先根据index查找Node节点;如果index小于总长度一般,就从头往尾找,否则就从尾往头部找最后将元素插入到找到的Node节点前面unlink
方法实现;如:“remove(int index)`。移除链表中指定的对象;如:remove(Object o)
。移除集合头部元素,通过unlinkFirst
方法实现;如:remove()
、removeFirst()
、poll()
、pollFirst()
、pop()
。移除集合尾部元素,通过unlinkLast
方法实现;如:removeLast()
、pollLast()
。checkElementIndex
方法校验索引index
。通过unlink
方法移除掉此节点。null
。循环所有节点 判断每个节点的元素值是否和对象o相等;如果相等就移除掉该节点并返回true
。get(int index)
。查找集合头部元素;如:element()
、getFirst()
、peek()
、peekFirst()
。查找集合尾部元素;如:getLast()
、peekLast()
。set(int index, E e)
index
是否越界获取节点node
及原元素oldValue
将节点node
设置为新的元素element
返回原元素oldValue
。关于如何用源码分析LinkedList就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
这篇文章主要讲解了“Linux下如何安装nginx”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下如何安装nginx”吧!安装依赖安装这4个依赖的时候,中间会有一些询问,输入y即可下载nginx的ta…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。