Метод list.List.MoveToBack

Метод MoveToBack перемещает переданный элемент в конец списка. Если элемент уже находится в конце списка, то метод не выполняет никаких действий. Первым параметром метод принимает указатель на элемент Element, который нужно переместить.

Синтаксис

golist.MoveToBack(e)

Пример

Давайте создадим список с элементами "a", "b", "c", "d" и "e", а затем переместим элемент "a" в конец списка:

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l := list.New()
  l.PushBack("a")
  l.PushBack("b")
  l.PushBack("c")
  l.PushBack("d")
  l.PushBack("e")

  e := l.Front()
  l.MoveToBack(e)

  for e := l.Front(); e != nil; e = e.Next() {
    fmt.Println(e.Value)
  }
}

Результат выполнения кода:

go"b"
"c"
"d"
"e"
"a"

Пример

Давайте попробуем переместить элемент, который уже находится в конце списка. В этом случае список не изменится:

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l := list.New()
  l.PushBack("a")
  l.PushBack("b")
  l.PushBack("c")
  l.PushBack("d")
  l.PushBack("e")

  e := l.Back()
  l.MoveToBack(e)

  for e := l.Front(); e != nil; e = e.Next() {
    fmt.Println(e.Value)
  }
}

Результат выполнения кода:

go"a"
"b"
"c"
"d"
"e"

Пример

Давайте рассмотрим более сложный пример, где мы перемещаем элемент из середины списка в конец:

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l := list.New()
  l.PushBack("a")
  l.PushBack("b")
  l.PushBack("c")
  l.PushBack("d")
  l.PushBack("e")

  var target *list.Element
  for e := l.Front(); e != nil; e = e.Next() {
    if e.Value == "c" {
      target = e
      break
    }
  }
  
  if target != nil {
    l.MoveToBack(target)
  }

  for e := l.Front(); e != nil; e = e.Next() {
    fmt.Println(e.Value)
  }
}

Результат выполнения кода:

go"a"
"b"
"d"
"e"
"c"

Смотрите также

  • метод list.List.MoveToFront,
    который перемещает элемент в начало списка
  • метод list.List.PushBack,
    который добавляет элемент в конец списка
  • метод list.List.PushFront,
    который добавляет элемент в начало списка
  • метод list.List.Remove,
    который удаляет элемент из списка