如何用源码分析LinkedList


这篇文章将为大家详细讲解有关如何用源码分析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)linkFirst(E e)先获取到首部节点first,再根据首部节点生成新的首部节点newNode如果原首部节点first为空,那么尾部节点也为newNode,否则设置原节点的上一个为newNodelinkLast(E e)先获取到尾部节点last,再根据尾部节点生成新的尾部节点newNode如果原尾部节点last为空,那么首部节点也为newNode,否则设置原节点的下一个为newNodeadd(int index, E ele 香港云主机ment)先校验index位置,如果是最后一个则直接调用linkLast(E e)不是最后的位置,则先根据index查找Node节点;如果index小于总长度一般,就从头往尾找,否则就从尾往头部找最后将元素插入到找到的Node节点前面addAll(Collection extends E> c)元素移除主要有以下几个方法:移除指定位置的元素,通过unlink方法实现;如:“remove(int index)`。移除链表中指定的对象;如:remove(Object o)。移除集合头部元素,通过unlinkFirst方法实现;如:remove()removeFirst()poll()pollFirst()pop()。移除集合尾部元素,通过unlinkLast方法实现;如:removeLast()pollLast()remove(int index)通过checkElementIndex方法校验索引index。通过unlink方法移除掉此节点。remove(Object o)先判断对象o是否为null。循环所有节点 判断每个节点的元素值是否和对象o相等;如果相等就移除掉该节点并返回trueunlinkFirst(Node f)unlinkLast(Node l)元素查找主要有以下几个方法:查找指定位置的元素;如:get(int index)。查找集合头部元素;如:element()getFirst()peek()peekFirst()。查找集合尾部元素;如:getLast()peekLast()get(int index)getFirst()getLast()元素更新只有一个方法:set(int index, E e)set(int index, E element)先判断索引index是否越界获取节点node及原元素oldValue将节点node设置为新的元素element返回原元素oldValue。关于如何用源码分析LinkedList就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

相关推荐: Linux下如何安装nginx

这篇文章主要讲解了“Linux下如何安装nginx”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下如何安装nginx”吧!安装依赖安装这4个依赖的时候,中间会有一些询问,输入y即可下载nginx的ta…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/12 20:27
下一篇 08/12 20:27

相关推荐