Метод list.List.MoveToFront
Метод MoveToFront перемещает переданный элемент
в начало списка. Если элемент уже находится в начале,
список не изменяется. Метод принимает один параметр -
указатель на элемент типа *list.Element,
который необходимо переместить. Элемент должен принадлежать
этому списку, иначе метод вызовет панику.
Синтаксис
list.MoveToFront(e *list.Element)
Пример
Давайте создадим список из элементов 1, 2, 3, 4, 5
и переместим элемент со значением 3 в начало:
package main
import (
"container/list"
"fmt"
)
func main() {
l := list.New()
for i := 1; i <= 5; i++ {
l.PushBack(i)
}
var elem *list.Element
for e := l.Front(); e != nil; e = e.Next() {
if e.Value == 3 {
elem = e
break
}
}
if elem != nil {
l.MoveToFront(elem)
}
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
}
Результат выполнения кода:
3
1
2
4
5
Пример
Давайте создадим список из строк "a", "b", "c", "d", "e"
и переместим элемент со значением "a", который уже находится в начале:
package main
import (
"container/list"
"fmt"
)
func main() {
l := list.New()
elements := []string{"a", "b", "c", "d", "e"}
for _, v := range elements {
l.PushBack(v)
}
front := l.Front()
if front != nil && front.Value == "a" {
l.MoveToFront(front)
}
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
}
Результат выполнения кода:
"a"
"b"
"c"
"d"
"e"
Пример
Давайте создадим список и переместим последний элемент в начало:
package main
import (
"container/list"
"fmt"
)
func main() {
l := list.New()
l.PushBack(1)
l.PushBack(2)
l.PushBack(3)
l.PushBack(4)
l.PushBack(5)
last := l.Back()
if last != nil {
l.MoveToFront(last)
}
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
}
Результат выполнения кода:
5
1
2
3
4
Смотрите также
-
метод
MoveToBack,
который перемещает элемент в конец списка -
метод
PushFront,
который вставляет новый элемент в начало списка -
метод
InsertBefore,
который вставляет элемент перед указанным элементом -
метод
Remove,
который удаляет элемент из списка