你好吗,关于linkedlist中的addfirst()的情况是什么意思?

publicvoidaddFirst(Ee){addBefore(e,header.next);}、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、privateEntry<E>addBefore(Ee,Entry<E>entry){Entry<E>...

小怪兽爱吃肉
浏览 195回答 2
2回答

回首忆惘然

LinkedList里储存的其实是Entry而不仅仅是外面看上去的元素,每个Entry里有三个元素:值本身,排在这个Entry前的那个Entry,排在这个Entry后的那个Entry。表里的所有Entry就这样前后一个钩一个连在一起,这就是为什么这种List叫LinkedList的原因。现在已经有一个LinkedList了,我要往里加一个新元素,而且指定要加在某Entry(我们叫它x,程序里它叫entry)之前,也就是要插在x和x前面那个Entry(我们叫它y,也就是x.previous)之间,那么新的Entry是怎么样的呢?它里面的三个元素是新元素值(e),它前面的那个Entry(自然是y),它后面那个Entry(自然是x),所以有这句Entry<E> newEntry = new Entry<E>(e, entry, entry.previous);有了这句还不够,还得把原来y和x之间的连接敲断,重新接到这个新加的Entry上。newEntry.previous(就是y)的后一个Entry就是新Entry:newEntry.previous.next = newEntry;而newEntry.next(就是x)的前一个Entry也是新Entry:newEntry.next.previous = newEntry;

吃鸡游戏

重在实践,别人说什么都不如自己运行一次来的实在。LinkedListLinkedList是通过节点直接彼此连接来实现的。每一个节点都包含前一个节点的引用,后一个节点的引用和节点存储的值。当一个新节点插入时,只需要修改其中保持先后关系的节点的引用即可,当删除记录时也一样。这样就带来以下有缺点:操作其中对象的速度快 只需要改变连接,新的节点可以在内存中的任何地方不能随即访问 虽然存在get()方法,但是这个方法是通过遍历接点来定位的所以速度慢。说白了,LinkedList是数据结构中链式存储
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python
Java