go list
# 简介
在Go语言中,list
包是标准库中 提供的一个双向链表(doubly linked list)实现。它提供了一种方便的数据结构,用于存储和操作双向链表的元素。
# 如何使用
- 包
container/list
- 如何创建一个list
list:=list.New()
# 常见方法
list.List
类型:list.List
是双向链表的主要类型,表示一个双向链表的实例。它包含了双向链表的头部和尾部元素,以及当前链表中的元素数量。list.Element
类型:list.Element
表示list.List
中的一个元素,即链表中的节点。每个节点都包含了一个Value
字段,可以存储任意类型的数据。func (l *List) PushFront(v interface{}) *Element
:将一个值v
插入到双向链表的头部,并返回对应的链表元素Element
。func (l *List) PushBack(v interface{}) *Element
:将一个值v
插入到双向链表的尾部,并返回对应的链表元素Element
。func (l *List) Remove(e *Element)
:从链表中移除给定的链表元素e
。func (l *List) MoveToFront(e *Element)
:将给定的链表元素e
移动到链表的头部。func (l *List) MoveToBack(e *Element)
:将给定的链表元素e
移动到链表的尾部。func (l *List) Len() int
:返回链表中元素的数量。func (l *List) Front() *Element
:返回链表的头部元素。func (l *List) Back() *Element
:返回链表的尾部元素。
比较java的LinkedList,java的LinkedList无法将某些元素移动到列表尾部或顶部,go可以通过这个特性很简单的实现LRU算法
编辑 (opens new window)
上次更新: 2024/02/22, 14:03:19