在 Go 语言中,将列表使用 container/list 包来实现,内部的实现原理是双链表。列表能够高效地进行任意位置的元素插入和删除操作。

初始化列表

list 的初始化有两种方法:New 和声明。两种方法的初始化效果都是一致的。

1) 通过 container/list 包的 New 方法初始化 list

变量名 := list.New()

2) 通过声明初始化list

var 变量名 list.List

列表与切片和 map 不同的是,列表并没有具体元素类型的限制。因此,列表的元素可以是任意类型。这既带来遍历,也会引来一些问题。给一个列表放入了非期望类型的值,在取出值后,将 interface{} 转换为期望类型时将会发生宕机。

在列表中插入元素

双链表支持从队列前方或后方插入元素,分别对应的方法是 PushFront 和 PushBack。

提示

这两个方法都会返回一个 *list.Element 结构。如果在以后的使用中需要删除插入的元素,则只能通过 *list.Element 配合 Remove() 方法进行删除,这种方法可以让删除更加效率化,也是双链表特性之一。

下面代码展示如何给list添加元素:

 
  1. l := list.New()
  2. l.PushBack("fist")
  3. l.PushFront(67)

代码说明如下:

  • 第 1 行,创建一个列表实例。
  • 第 3 行,将 fist 字符串插入到

golang list 删除添加元素相关推荐

  1. golang 切片删除指定内容

    示例如下: package mainimport "fmt"func main() {ip := []int{1, 2, 3, 4, 5, 6}ips := ip//要删除的内容d ...

  2. golang map 删除 清空

    使用 delete() 函数从 map 中删除键值对 使用 delete() 内建函数从 map 中删除一组键值对,delete() 函数的格式如下: delete(map, 键) 其中 map 为要 ...

  3. golang map 删除key后内存不会自动释放,内存泄漏问题

    全局map ,会有内存释放问题 package mainimport ("fmt""github.com/thoas/go-funk""math&qu ...

  4. JS-数组-声明方式-读写添加删除-遍历

    JS-数组 1 回顾 1.1 条件语句(分支结构) /*单向分支*/ if (条件表达式) {}/*双向分支*/ if (条件表达式) {} else {}/*多向分支 elseif*/ if (条件 ...

  5. C#编程(五十三)----------字典DictionaryTKey,TValue

    字典 关键字:Dicitionary 说明: 必须包含命名空间System.Collection.Generic Dictionary里面的每一个元素都是一个键值对(由两个元组组成:键和值). 键必须 ...

  6. Java enum的用法详解

    在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. public e ...

  7. python如何去掉方括号_python从入门到实战外星人入侵

    ## 第一章 软件安装与简单操作 ## 第二章 字符串操作总结 - 方法 方法是Python可对数据执行的操作.每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成,这种信息是在括号内提供 ...

  8. flutter中list相关操作汇总(有这一篇就够啦)

    要说,List在我的开发使用中,确实是最为频繁的了,那么如何使用list,也就成了一个问题,list提供的方法又有哪些 这些都是需要掌握理解的. 首先第一个, 对于固定长度的list,如何删除添加元素 ...

  9. flutter开发之必须掌握的dart知识点:list,set,map

    要说,List在我的开发使用中,确实是最为频繁的了,那么如何使用list,也就成了一个问题,list提供的方法又有哪些 这些都是需要掌握理解的. 首先第一个, 对于固定长度的list,如何删除添加元素 ...

最新文章

  1. OracleDesigner学习笔记1――安装篇
  2. 给算法工程师和研究员的「霸王餐」| 附招聘信息
  3. 杨桃32开发版最小核心板和底板接口定义以及各io口功能
  4. SET QUERY_GOVERNOR_COST_LIMIT
  5. IsNull 和 SQL语句中CASE WHEN用法
  6. Spring - Spring Boot Spring Cloud
  7. propertysource注解_Java开发必须掌握的 20+ 种 Spring 常用注解
  8. Android动态布局
  9. Jupyter Notebook的安装和使用
  10. 【干货】小米用户画像实战.pdf(附下载链接)
  11. php天津旅游设计网站作品
  12. string.split方法 保留分隔符_Python pandas库159个常用方法使用说明
  13. 计算机内存不足图片,电脑无法显示图片说内存不足
  14. 基于 BIP39 协议创建 Ethereum HD Wallet
  15. 数字图像处理基本知识
  16. 写一下安装composer,以及composer安装依赖包时候遇到的烦人问题吧
  17. 【从零开始学深度学习编译器】十二,MLIR Toy Tutorials学习笔记一
  18. 数据类型,栈内存、堆内存
  19. ERROR: Cannot uninstall 'pywin32'.
  20. [Python]tabulate可如此优雅地创建表格

热门文章

  1. 苹果电脑 删除已安装的node
  2. phpcms_v9 默认templates模板文件目录结构
  3. java setstate_setState 更新机制学习笔记
  4. 操作系统进程的三种基本状态及其相互关系
  5. 【Mac系统在Word插入引文跳转endnotes,word文献无显示问题
  6. 讲讲语言模型和中文分词
  7. VBA小工具(二)针对大量PQ模型,批量打开刷新更新数据源输出报表
  8. 避坑宝典:如何选择HTML5游戏引擎
  9. worthington酶丨worthington抑制剂的作用
  10. 基于PHP的地铁售票系统