LinkedList<T>
- 双向链表。通过移动到下一个元素,可以正向遍历整个链表。通过移动到前一个元素,可以反向遍历整个链表
- 插入元素,效率很高。只需要修改前一个元素的Next和后一个元素的Previous。相比之下,
List<T>
插入元素,需要移动后面所有元素。 - 要访问链表位于中间的元素,效率较低。只能从头或者从尾一个一个找过去。
- 元素为
LinkedListNode<T>
成员 | 说明 |
---|---|
First |
第一个元素 |
Last |
最后一个元素 |
AddAfter() |
指定位置后,插入 |
AddBefore() |
指定位置前,插入 |
AddFirst() |
插入到最前面 |
AddLast() |
插入到最后面 |
Remove() |
指定位置,删除 |
RemoveFirst() |
删除第一个 |
RemoveLast() |
删除最后一个 |
Find() |
从链表头,开始找 |
FindLast() |
从链表尾,开始找 |
LinkedListNode<T>
成员 | 说明 |
---|---|
List |
与此Node,相关的LinkedList<T> 对象 |
Next |
下一个Node |
Previous |
前一个Node |
Value |
此Node中,T类型的值 |
示例
- 动态插入Document的过程中,需要保持一种秩序
- 这种秩序是:
- Priority高的,排在前面
- Priority相同时,先插入的排在前面
1 | js复制代码 class Program |
输出:
1 | js复制代码priority: 9, title six |
实现:
List<LinkedListNode<Document>> _priorityNodes
用来存储,在每一个Priority上,已经插入了的,最新的,Document。
1 | js复制代码 public class PriorityDocumentManager |
本文转载自: 掘金