Go list的介绍与使用
作者:互联网
介绍
Go的list是一个双向链表,链表可以高效的删除插入元素,很多场景是需要用到这个结构的,比如cache
使用
list
在包container/list
下,可以通过NeW()
初始化或者var
声明
两种方法如下
mylist := list.New()
var mylist list.List
-
常用的函数以及功能如下表格
| 函数|功能 |
| :------------ | :------------ |
|PushFront(v any) *Element
|在最前插入元素 |
|PushBack(v any) *Element
|在最后插入元素 |
|InsertBefore(v any, mark *Element) *Element
|将元素插到mark前 |
|InsertAfter(v any, mark *Element) *Element
|将元素插到mark后 |
|MoveToFront(e *Element)
|将指定元素移到最前|
|MoveToBack(e *Element)
|将指定元素移到最后|
|MoveBefore(e, mark *Element)
|将指定元素移到mark前|
|MoveAfter(e, mark *Element)
|将指定元素移到mark后|
|PushBackList(other *List)
|将另一个list插入到当前list后 |
|PushFrontList(other *List)
|将另一个list插入到当前list前|
|Remove(e *Element) any
|删除指定元素| -
demo
package main
import (
"container/list"
"fmt"
)
func main() {
mylist := list.New()
one := mylist.PushFront("first")
two := mylist.PushBack("second")
head := mylist.InsertAfter("third", one)
three := mylist.InsertAfter(4, two)
mylist.Remove(three)
mylist.MoveToFront(head)
for e := mylist.Front(); e != nil; e = e.Next() {
fmt.Printf("%v ", e.Value)//third first second
}
}
标签:mylist,元素,list,介绍,mark,Go,Element,any 来源: https://www.cnblogs.com/notomatoes/p/16291543.html