Go语言列表List获取元素的4种方式

目录
  • 1、获取列表头结点
  • 2、获取列表尾结点
  • 3、获取上一个结点
  • 4、获取下一个结点

Golang的列表元素的获取可以使用内置的 Front 函数获取头结点,使用 Back 函数获取尾结点,使用 Prev 获取前一个结点,使用 Next 获取下一个结点。

1、获取列表头结点

Front() *Element

package main
import (
    "container/list"
    "fmt"
)
func main() {
    fmt.Println("嗨客网(www.haicoder.net)")
    //使用列表内置的 Front() 函数,获取列表的头结点
    listHaiCoder := list.New()
    listHaiCoder.PushFront("Hello")
    listHaiCoder.PushFront("HaiCoder")
    listHaiCoder.PushFront("嗨客网")
    element := listHaiCoder.Front()
    fmt.Println("Front =", element.Value)
}

使用列表内置的 Front() 函数,获取列表的头结点。

2、获取列表尾结点

Back () *Element

package main
import (
    "container/list"
    "fmt"
)
func main() {
    fmt.Println("嗨客网(www.haicoder.net)")
    //使用列表内置的 Back() 函数,获取列表的尾结点
    listHaiCoder := list.New()
    listHaiCoder.PushFront("Hello")
    listHaiCoder.PushFront("HaiCoder")
    listHaiCoder.PushFront("嗨客网")
    element := listHaiCoder.Back()
    fmt.Println("Back =", element.Value)
}

使用列表内置的 Back() 函数,获取列表的尾结点。

3、获取上一个结点

Prev() *Element

package main
import (
    "container/list"
    "fmt"
)
func main() {
    fmt.Println("嗨客网(www.haicoder.net)")
    //使用列表内置的 Prev() 函数,获取列表的上一个结点
    listHaiCoder := list.New()
    listHaiCoder.PushFront("Hello")
    element := listHaiCoder.PushFront("HaiCoder")
    listHaiCoder.PushFront("嗨客网")
    preElement := element.Prev()
    fmt.Println("preElement =", preElement.Value)
}

使用列表内置的 Prev() 函数,获取列表的上一个结点。

4、获取下一个结点

Next() *Element

package main
import (
    "container/list"
    "fmt"
)
func main() {
    fmt.Println("嗨客网(www.haicoder.net)")
    //使用列表内置的 Next() 函数,获取列表的下一个结点
    listHaiCoder := list.New()
    listHaiCoder.PushFront("Hello")
    element := listHaiCoder.PushFront("HaiCoder")
    listHaiCoder.PushFront("嗨客网")
    nextElement := element.Next()
    fmt.Println("nextElement =", nextElement.Value)
}

使用列表内置的 Next() 函数,获取列表的下一个结点。

到此这篇关于Go语言列表List获取元素的4种方式的文章就介绍到这了,更多相关Go 列表List获取元素内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 基于golang中container/list包的用法说明

    list是一个双向链表 该结构具有链表的所有功能. type Element type Element struct { Value interface{} //在元素中存储的值 } func (e *Element) Next() *Element //返回该元素的下一个元素,如果没有下一个元素则返回nil func (e *Element) Prev() *Element//返回该元素的前一个元素,如果没有前一个元素则返回nil. type List func New() *List //返

  • Golang中List的实现方法示例详解

    前言 为了快速回顾Go基本的语法知识,打算用Go中的基本语法以及特性来实现一些常见的数据结构和排序算法,通过分析如何实现一些基本的数据结构,可以很快学习Go的语法特性.记忆更加深刻,掌握更加迅速.这是我认为学习一门新语言入门最好的方式.这也是方便自己以后需要用Go来写东西的一种前期准备,到时候就不用去翻一些教程了.系列博文的第一篇就从如何实现List开始. 需求 大家都知道基本链表得有以下特性:链表的初始化.链表的长度.节点的插入.删除.查找等一些常见的基本操作,最后写好之后,需要测试.关于测试

  • golag 使用sort.slice包实现对象list排序

    目录 1.sort.Sort介绍 1.1分析内置sort包 1.2分析sort.go 2.使用方法 2.1基础类型排序 2.2对象排序(单一字段) 2.3对象排序(多字段) 3.sort.Slice介绍 3.1使用方法 3.2运行 1.sort.Sort介绍 使用sort.Slice进行排序,因为slice把struct抽象化了,且slice封装过了,简单的基础类型可以使用sort,使用sort排序需要重写三个interface,不想学习sort排序的可以直接看第三步 这里将对比sort跟sli

  • Go语言实现互斥锁、随机数、time、List

    Go语言实现互斥锁.随机数.time.List import ( "container/list" "fmt" "math/rand" //备注2:随机数的包 "sync" //备注1:异步任务的包 "time" ) type INFO struct { lock sync.Mutex //备注1:异步锁 Name string Time int64 } var List *list.List = list

  • 解决golang中container/list包中的坑

    golang中list包用法可以参看这篇文章 但是list包中大部分对于e *Element进行操作的元素都可能会导致程序崩溃,其根本原因是e是一个Element类型的指针,当然其也可能为nil,但是golang中list包中函数没有对其进行是否为nil的检查,变默认其非nil进行操作,所以这种情况下,便可能出现程序崩溃. 1.举个简单例子 Remove()函数 package main import ( "container/list" "fmt" ) func

  • Go语言列表List获取元素的4种方式

    目录 1.获取列表头结点 2.获取列表尾结点 3.获取上一个结点 4.获取下一个结点 Golang的列表元素的获取可以使用内置的 Front 函数获取头结点,使用 Back 函数获取尾结点,使用 Prev 获取前一个结点,使用 Next 获取下一个结点. 1.获取列表头结点 Front() *Element package main import ( "container/list" "fmt" ) func main() { fmt.Println("嗨

  • jquery中获取元素的几种方式小结

    1 从集合中通过指定的序号获取元素 html: 复制代码 代码如下: <div> <p>0</p> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> <p>6</p> <p>7</p> </div> JS 复制代码 代码如下: <script ty

  • python删除列表中特定元素的几种方法

    目录 前言 思路 方法1 方法2:使用while循环 方法3:for循环倒序删除空字符串 方法4:拷贝原列表 前言 题目如下: 给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度.如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指仅由字母组成.不包含任何空格字符的 最大子字符串. 示例: 输入: "Hello World"输出: 5 思路 题目要求给一个字符串s,s仅包含字母和空格字符

  • 详解iOS获取通讯录的4种方式

    本文实例为大家分享了iOS获取通讯录的4种方式,供大家参考,具体内容如下 使用场景 一些App通过手机号码来推荐好友,如 微博.支付宝 首先客户端会获取通讯录中的所有手机号然后将这些手机号提交到App服务器中,服务器会查找每个手机号对应的App账号如QQ号码返回到客户端,然后客户端根据服务器返回的账号列表来推荐好友. 获取联系人方式 方案一:AddressBookUI.framework框架 提供了联系人列表界面.联系人详情界面.添加联系人界面等 一般用于选择联系人 方案二:AddressBoo

  • C++中检查vector是否包含给定元素的几种方式详解

    概述 在编码中经常会遇到一种场景,就是要在数组或列表中查找某个元素是否存在,其实对于这种线性操作,自己实现一个循环来检查是非常简单的事情,那既然这样,为啥还要专门写篇博客来分享呢? 一个最重要的原因就是我们原本就可以用更简洁直观高效的方式去替代手写for循环,这个方式就是使用C++标准库函数. 再啰嗦几句. 通常在面试的时候,为了考察面试者的编码功底,会让其从头实现某些基础的算法,但是在实际开发中,很多东西都有现成的封装.只有把语言.标准库"双剑合璧"才能算是真正的C++.而且据C++

  • Python实现列表拼接和去重的三种方式

    目录 列表拼接三种方式 方式一:简简单单的"+" 方法二:切片赋值 方式三:列表自带的extend() 列表去重的三种方式 利用集合set的特性 利用字典key的不可重复属性 利用index()获取到的是第一次出现的索引 列表拼接三种方式 列表拼接主要有以下三种方式: 最简单的使用"+"; 使用切片赋值的方法: 使用列表自带的extend方法 方式一:简简单单的"+" >>> list1 = [1,2,3] >>&g

  • 详解Java中数组判断元素存在几种方式比较

    1. 通过将数组转换成List,然后使用List中的contains进行判断其是否存在 public static boolean useList(String[] arr,String containValue){ return Arrays.asList(arr).contains(containValue); } 需要注意的是Arrays.asList这个方法中转换的List并不是java.util.ArrayList而是java.util.Arrays.ArrayList,其中java.

  • C++ STL array容器访问元素的几种方式

    当 array 容器创建完成之后,最常做的操作就是获取其中的元素,甚至有时还会通过循环结构获取多个元素.本节就对获取容器中元素的方法做个汇总. 访问array容器中单个元素 首先,可以通过容器名[]的方式直接访问和使用容器中的元素,这和 C++ 标准数组访问元素的方式相同,例如: values[4] = values[3] + 2.O*values[1]; 此行代码中,第 5 个元素的值被赋值为右边表达式的值.需要注意的是,使用如上这样方式,由于没有做任何边界检查,所以即便使用越界的索引值去访问

  • 详解C++ STL vector容器访问元素的几种方式

    学会如何创建并初始化 vector 容器之后,本节继续来学习如何获取(甚至修改)容器中存储的元素. 访问vector容器中单个元素 首先,vector 容器可以向普通数组那样访问存储的元素,甚至对指定下标处的元素进行修改,比如: #include <iostream> #include <vector> using namespace std; int main() { vector<int> values{1,2,3,4,5}; //获取容器中首个元素 cout &l

  • 详解JDBC的概念及获取数据库连接的5种方式

    目录 一.JDBC概念 二.JDBC获取数据库连接的5种方式 方式一 方式二 方式三 方式四 方式五 一.JDBC概念 Java DataBase Connectivity(Java数据库连接技术) 它是将Java与SQL结合且独立于特定的数据库系统的应用程序编程接口(API-它是一种可用于执行SQL语句的JavaAPI,即由一组用Java语言编写的类与接口所组成) JDBC的设计目的: 它是一种规范,设计出来的主要目的是为了让各个数据库开发商为Java程序员提供标准的数据访问类和接口,使得独立

随机推荐