Go语言列表list元素移到最后

Go语言列表list元素移到最后教程

Golang列表 元素的移动除了提供了 移到指定元素的前面移到指定元素的后面,还提供了 移到列表的最前面 和移到列表的最后面的操作。

如果要移到最后面的元素本来就在列表的最后面,那么列表不会做任何的改动,或者如果指定元素不是列表中的元素,列表也不会做任何改动。

移到列表最后

语法

MoveToBack(e *Element)

参数

参数 描述
e 要移动的元素。

说明

将元素 e 移动到列表的最后面。

案例

移到列表最后

将元素 e 移动到列表的最后面

package main import ( "container/list" "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //将元素 e 移动到列表的最后面 listHaiCoder := list.New() listHaiCoder.PushFront("Hello") element1 := listHaiCoder.PushFront("HaiCoder") listHaiCoder.PushFront("嗨客网") for i := listHaiCoder.Back(); i != nil; i = i.Prev() { fmt.Printf("%s ", i.Value) } fmt.Println("\n=====================================") listHaiCoder.MoveToBack(element1) for i := listHaiCoder.Back(); i != nil; i = i.Prev() { fmt.Printf("%s ", i.Value) } }

程序运行后,控制台输出如下:

115 golang列表元素移动.png

我们通过 list.New 创建了一个列表 listHaiCoder,接着使用 PushFront 函数在列表的头部连续插入了三个元素。因为我们使用的是头插法,因此最后插入的元素在最后面。

接着,我们首先 遍历列表 一次,打印出此时列表元素的顺序,接着,使用 MoveToBack 将元素 element1 移动到列表的最后面。

最后,我们再次打印此时列表元素的顺序,发现元素 element1 已经被移动到了列表的最后面。

元素本来就在最后

如果元素本来就在最后面,列表不做任何改变

package main import ( "container/list" "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //如果元素本来就在最后面,列表不做任何改变 listHaiCoder := list.New() element := listHaiCoder.PushFront("Hello") listHaiCoder.PushFront("HaiCoder") listHaiCoder.PushFront("嗨客网") for i := listHaiCoder.Back(); i != nil; i = i.Prev() { fmt.Printf("%s ", i.Value) } fmt.Println("\n=====================================") listHaiCoder.MoveToBack(element) for i := listHaiCoder.Back(); i != nil; i = i.Prev() { fmt.Printf("%s ", i.Value) } }

程序运行后,控制台输出如下:

116 golang列表元素移动.png

我们通过 list.New 创建了一个列表 listHaiCoder,接着使用 PushFront 函数在列表的头部连续插入了三个元素。因为我们使用的是头插法,因此最后插入的元素在最后面。

接着,我们首先遍历列表一次,打印出此时列表元素的顺序,接着,使用 MoveToBack 将元素 element 移动到列表的最后面。

因为元素 element 本来就在列表的最后面,所以列表没有做任何的改变。最后,我们再次打印此时列表元素的顺序。

元素不是列表的元素

如果元素不是列表的元素,列表不做任何改变

package main import ( "container/list" "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //如果元素不是列表的元素,列表不做任何改变 listHaiCoder := list.New() listHaiCoder.PushFront("Hello") listHaiCoder.PushFront("嗨客网") listHaiCoder2 := list.New() element := listHaiCoder2.PushFront("Hai") for i := listHaiCoder.Back(); i != nil; i = i.Prev() { fmt.Printf("%s ", i.Value) } fmt.Println("\n=====================================") listHaiCoder.MoveToBack(element) for i := listHaiCoder.Back(); i != nil; i = i.Prev() { fmt.Printf("%s ", i.Value) } }

程序运行后,控制台输出如下:

117 golang列表元素移动.png

我们通过 list.New 创建了一个列表 listHaiCoder 和一个列表 listHaiCoder2,接着使用 PushFront 函数分别在两个列表的头部插入元素。

接着,我们将列表 listHaiCoder2 的元素 element 插入到列表 listHaiCoder 的最后面,此时列表 listHaiCoder 不会做任何的改变,程序也不会报错。

Go语言列表list元素移动总结

如果要移到最后面的元素本来就在列表的最后面,那么列表不会做任何的改动,或者如果指定元素不是列表中的元素,列表也不会做任何改动。移到列表最后语法:

MoveToBack(e *Element)