这篇文章主要讲解了“Java中LinkedList容器如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中LinkedList容器如何使用”吧!public class LinkedList extends AbstractSequentialList implements List, DequeLinkedList具备AbstractSequentialList的特点:AbstractSequentialList 只支持按次序访问,而不像 AbstractList 免费云主机域名那样支持随机访问LinkedList具备List的特点LinkedList具备Deque的特点:Deque是一个线性collection,支持在两端插入和移除元素LinkedList特点1.LinkedList是通过双链表去实现的。2.LinkedList不存在容量不足的问题,因为是链表。3.LinkedList实现了Deque,而Deque接口定义了在双端队列两端访问元素的方法,所以LinkedList可以作为FIFO(先进先出)的队列;LinkedList可以作为LIFO(后进先出)的栈新增元素add()方法默认是尾部追加,核心就是将新建的Node节点追加到当前last节点的next指针上 ,伪代码:addFirst:首部追加首部追加的逻辑与尾部追加基本相同,伪代码:指定位置添加元素:add(int index, E element):LinkedList是一个双向链表,他只记录了头部和尾部位置,如果我们要指定位置插入,他会这么做:1.先遍历查找出要插入的元素位置,然后再插入;查找方式是根据 index > 1)判断结果,决定是从头遍历,还是从尾部遍历,这种遍历方式类似于二分查找(只在第一层循环二分)2.新建一个Node节点,插入到查找出来的元素的前面由此可知为何链表对随机位置读写是不合适的;他的时间复杂度=O(n/2) ,如果n很大,我们一般就认为他的时间复杂度=O(n)这里我们看到LinkedList重写了List的remove方法,整个删除逻辑也是先查找再删除,时间复杂度O(n),如果是删除首部元素时间复杂度=O(1),若要删除尾部元素请使用removeLast( )LinkedLis删除首部元素:removeFirst()LinkedLis删除尾部元素:removeLast()LinkedLis首部出队:pollFirst( ) ,队列的特点LinkedLit尾部出队:pollLast( ),队列的特点Iterator迭代器只能是从头往尾迭代,而LinkedList是双向链表,他还可以从尾往头部迭代,JAVA提供了一个新的迭代器接口:LinkedList实现该接口:LinkedList从前往后遍历:LinkedList从后往前遍历:迭代器删除元素:感谢各位的阅读,以上就是“Java中LinkedList容器如何使用”的内容了,经过本文的学习后,相信大家对Java中LinkedList容器如何使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!
相关推荐: php如何实现Redis的Hash操作
小编给大家分享一下php如何实现Redis的Hash操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hash操作以上是“php如何实现Redis的Hash操作”这篇文章的所有内容,…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。