快速列表

快速列表按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。

快速列表宏观上是一个双向链表,微观为数组。相对于传统列表,避免了修改造成的大规模的数据迁移。

可用方法

Add

element插入到列表尾部。

  1. quicklist.Add("hello world");

Clear

清空快速列表

  1. quicklist.Clear();

Count

获取快速列表的element数量。

  1. var num = quicklist.Count;

First

获取快速列表中的第一个元素。如果有序集为空则引发InvalidOperationException异常。

  1. var element = quicklist.First();

GetRange

获取区间内的所有element

  1. var range = quicklist.GetRange(10,20);

InsertAfter

在指定element之后插入新的element

  1. quicklist.InsertAfter("hello world" , "new hello world");

InsertBefore

在指定element之前插入新的element

  1. quicklist.InsertBefore("hello world" , "new hello world");

Last

获取快速列表中的最后一个元素。如果有序集为空则引发InvalidOperationException异常。

  1. var element = quicklist.Last();

Length

获取快速列表的节点数量。(快速列表宏观上为双向链表,每个节点可以有N个element)

  1. var num = quicklist.Length;

Pop

移除并返回列表尾部的element。如果列表为空则引发InvalidOperationException异常。

  1. var element = quicklist.Pop();

Push

element插入到列表尾部。(和Add是等价的)

  1. quicklist.Push("hello world");

Remove

根据参数count的值,移除列表中与参数element相等的元素。
如果 count > 0从表头开始向表尾搜索,移除与element相等的元素,数量为count
如果 count = 0从表头开始向表尾搜索,移除全部与element相等的元素。
如果 count < 0从表尾开始向表头搜索,移除与element相等的元素,数量为count

返回值为被移除元素的数量。

  1. var num = quicklist.Remove("hello world" , 10);

ReverseIterator

反转迭代器迭代顺序。

注意,这并不是真正意义反转整个快速列表,只是反转了迭代顺序。

  1. quicklist.ReverseIterator();

Shift

移除并返回列表头部的element。如果列表为空则引发InvalidOperationException异常。

  1. var element = quicklist.Shift();

Trim

对列表进行修剪,只保留下标范围内的元素(包括min和包括max)。返回值为被移除元素的数量。

  1. quicklist.Trim(10,200);

UnShift

element插入到列表头部。

  1. quicklist.UnShift("hello world");