Allenxuxu / orderedlist

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ordered list

Github Actions Go Report Card

支持并发操作的有序链表

让每个链表元素持有一个锁,从而缩小锁粒度,来支持并发操作。

type List interface {
	// Contains 检查一个元素是否存在,如果存在则返回 true,否则返回 false
	Contains(value int) bool
	// Insert 插入一个元素,如果此操作成功插入一个元素,则返回 true,否则返回 false
	Insert(value int) bool
	// Delete 删除一个元素,如果此操作成功删除一个元素,则返回 true,否则返回 false
	Delete(value int) bool
	// Range 遍历此有序链表的所有元素,如果 f 返回 false,则停止遍历
	Range(f func(value int) bool)
	// Len 返回有序链表的元素个数
	Len() int
}

Example

	l := New()
	
	l.Insert(0)
	
	if l.Contains(0) {
		fmt.Println("invalid contains")
	}
	
	l.Delete(0)

About

License:MIT License


Languages

Language:Go 100.0%