快速列表
快速列表按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
快速列表宏观上是一个双向链表,微观为数组。相对于传统列表,避免了修改造成的大规模的数据迁移。
可用方法
- Add
- Clear
- Count
- First
- GetRange
- InsertAfter
- InsertBefore
- Last
- Length
- Pop
- Push
- Remove
- ReverseIterator
- Shift
- Trim
- UnShift
Add
将element
插入到列表尾部。
quicklist.Add("hello world");
Clear
清空快速列表
quicklist.Clear();
Count
获取快速列表的element
数量。
var num = quicklist.Count;
First
获取快速列表中的第一个元素。如果有序集为空则引发InvalidOperationException
异常。
var element = quicklist.First();
GetRange
获取区间内的所有element
。
var range = quicklist.GetRange(10,20);
InsertAfter
在指定element
之后插入新的element
。
quicklist.InsertAfter("hello world" , "new hello world");
InsertBefore
在指定element
之前插入新的element
。
quicklist.InsertBefore("hello world" , "new hello world");
Last
获取快速列表中的最后一个元素。如果有序集为空则引发InvalidOperationException
异常。
var element = quicklist.Last();
Length
获取快速列表的节点
数量。(快速列表宏观上为双向链表,每个节点可以有N个element)
var num = quicklist.Length;
Pop
移除并返回列表尾部的element
。如果列表为空则引发InvalidOperationException
异常。
var element = quicklist.Pop();
Push
将element
插入到列表尾部。(和Add是等价的)
quicklist.Push("hello world");
Remove
根据参数count
的值,移除列表中与参数element
相等的元素。
如果 count > 0
从表头开始向表尾搜索,移除与element
相等的元素,数量为count
。
如果 count = 0
从表头开始向表尾搜索,移除全部与element
相等的元素。
如果 count < 0
从表尾开始向表头搜索,移除与element
相等的元素,数量为count
。
返回值为被移除元素的数量。
var num = quicklist.Remove("hello world" , 10);
ReverseIterator
反转迭代器迭代顺序。
注意,这并不是真正意义反转整个快速列表,只是反转了迭代顺序。
quicklist.ReverseIterator();
Shift
移除并返回列表头部的element
。如果列表为空则引发InvalidOperationException
异常。
var element = quicklist.Shift();
Trim
对列表进行修剪,只保留下标范围内的元素(包括min和包括max)。返回值为被移除元素的数量。
quicklist.Trim(10,200);
UnShift
将element
插入到列表头部。
quicklist.UnShift("hello world");