Documentation ¶
Overview ¶
Package container 实现了一种特殊的链表,可以在遍历时在任意位置添加或删除元素,递归添加或删除元素时仍然能正常工作,但是需要GC支持,主要用于ec包内部。
Index ¶
- type Allocator
- type Element
- type GC
- type GCCollector
- type List
- func (l *List[T]) Back() *Element[T]
- func (l *List[T]) Cap() int
- func (l *List[T]) Front() *Element[T]
- func (l *List[T]) GC()
- func (l *List[T]) GetAllocator() Allocator[T]
- func (l *List[T]) GetGCCollector() GCCollector
- func (l *List[T]) Init(allocator Allocator[T], gcCollector GCCollector) *List[T]
- func (l *List[T]) InsertAfter(value T, mark *Element[T]) *Element[T]
- func (l *List[T]) InsertBefore(value T, mark *Element[T]) *Element[T]
- func (l *List[T]) Len() int
- func (l *List[T]) MoveAfter(e, mark *Element[T])
- func (l *List[T]) MoveBefore(e, mark *Element[T])
- func (l *List[T]) MoveToBack(e *Element[T])
- func (l *List[T]) MoveToFront(e *Element[T])
- func (l *List[T]) NeedGC() bool
- func (l *List[T]) PushBack(value T) *Element[T]
- func (l *List[T]) PushBackList(other *List[T])
- func (l *List[T]) PushFront(value T) *Element[T]
- func (l *List[T]) PushFrontList(other *List[T])
- func (l *List[T]) Remove(e *Element[T]) T
- func (l *List[T]) ReverseTraversal(visitor func(e *Element[T]) bool)
- func (l *List[T]) ReverseTraversalAt(visitor func(e *Element[T]) bool, mark *Element[T])
- func (l *List[T]) SetAllocator(allocator Allocator[T])
- func (l *List[T]) SetGCCollector(gcCollector GCCollector)
- func (l *List[T]) Traversal(visitor func(e *Element[T]) bool)
- func (l *List[T]) TraversalAt(visitor func(e *Element[T]) bool, mark *Element[T])
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Element ¶
type Element[T any] struct { Value T // contains filtered or unexported fields }
Element 元素
type GCCollector ¶
type GCCollector interface { // CollectGC 收集GC CollectGC(gc GC) }
GCCollector GC收集器接口
type List ¶
type List[T any] struct { // contains filtered or unexported fields }
List 链表,非线程安全,支持在遍历过程中删除元素
func NewList ¶
func NewList[T any](allocator Allocator[T], gcCollector GCCollector) *List[T]
NewList 创建链表
func (*List[T]) GetGCCollector ¶
func (l *List[T]) GetGCCollector() GCCollector
GetGCCollector 获取GC收集器
func (*List[T]) Init ¶
func (l *List[T]) Init(allocator Allocator[T], gcCollector GCCollector) *List[T]
Init 初始化
func (*List[T]) InsertAfter ¶
InsertAfter 在链表指定位置后插入数据
func (*List[T]) InsertBefore ¶
InsertBefore 在链表指定位置前插入数据
func (*List[T]) MoveBefore ¶
MoveBefore 移动元素至链表指定位置前
func (*List[T]) PushBackList ¶
PushBackList 在链表尾部插入其他链表
func (*List[T]) PushFrontList ¶
PushFrontList 在链表头部插入其他链表
func (*List[T]) ReverseTraversal ¶
ReverseTraversal 反向遍历元素
func (*List[T]) ReverseTraversalAt ¶
ReverseTraversalAt 从指定位置开始反向遍历元素
func (*List[T]) SetAllocator ¶
SetAllocator 设置链表内存分配器
func (*List[T]) SetGCCollector ¶
func (l *List[T]) SetGCCollector(gcCollector GCCollector)
SetGCCollector 设置GC收集器
Click to show internal directories.
Click to hide internal directories.