游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

golang2021数据格式(73)Go语言list(列表)

  列表是一种非连续的存储容器,由多个节点组成,节点通过一些变量记录彼此之间的关系,列表有多种实现方法,如单链表、双链表等。
  列表的原理可以这样理解:假设A、B、C三个人都有电话号码,如果A把号码告诉给B,B把号码告诉给C,这个过程就建立了一个单链表结构,如下图所示。
  图:三人单向通知电话号码形成单链表结构
  如果在这个基础上,再从C开始将自己的号码告诉给自己所知道号码的主人,这样就形成了双链表结构,如下图所示。
  图:三人相互通知电话号码形成双链表结构
  那么如果需要获得所有人的号码,只需要从A或者C开始,要求他们将自己的号码发出来,然后再通知下一个人如此循环,这样就构成了一个列表遍历的过程。
  如果B换号码了,他需要通知A和C,将自己的号码移除,这个过程就是列表元素的删除操作,如下图所示。
  图:从双链表中删除一人的电话号码
  在Go语言中,列表使用containerlist包来实现,内部的实现原理是双链表,列表能够高效地进行任意位置的元素插入和删除操作。
  初始化列表
  list的初始化有两种方法:分别是使用New()函数和var关键字声明,两种方法的初始化效果都是一致的。
  1)通过containerlist包的New()函数初始化list
  变量名:list。New()
  2)通过var关键字声明初始化list
  var变量名list。List
  列表与切片和map不同的是,列表并没有具体元素类型的限制,因此,列表的元素可以是任意类型,这既带来了便利,也引来一些问题,例如给列表中放入了一个interface{}类型的值,取出值后,如果要将interface{}转换为其他类型将会发生宕机。
  在列表中插入元素
  双链表支持从队列前方或后方插入元素,分别对应的方法是PushFront和PushBack。
  提示
  这两个方法都会返回一个list。Element结构,如果在以后的使用中需要删除插入的元素,则只能通过list。Element配合Remove()方法进行删除,这种方法可以让删除更加效率化,同时也是双链表特性之一。
  下面代码展示如何给list添加元素:
  l:list。New()
  l。PushBack(fist)
  l。PushFront(67)
  代码说明如下:
  第1行,创建一个列表实例。
  第3行,将fist字符串插入到列表的尾部,此时列表是空的,插入后只有一个元素。
  第4行,将数值67放入列表,此时,列表中已经存在fist元素,67这个元素将被放在fist的前面。
  列表插入元素的方法如下表所示。
  方法
  功能
  InsertAfter(vinterface{},markElement)Element
  在mark点之后插入元素,mark点由其他插入函数提供
  InsertBefore(vinterface{},markElement)Element
  在mark点之前插入元素,mark点由其他插入函数提供
  PushBackList(otherList)
  添加other列表元素到尾部
  PushFrontList(otherList)
  添加other列表元素到头部
  从列表中删除元素
  列表插入函数的返回值会提供一个list。Element结构,这个结构记录着列表元素的值以及与其他节点之间的关系等信息,从列表中删除元素时,需要用到这个结构进行快速删除。
  列表操作元素:
  packagemain
  importcontainerlist
  funcmain(){
  l:list。New()
  尾部添加
  l。PushBack(canon)
  头部添加
  l。PushFront(67)
  尾部添加后保存元素句柄
  element:l。PushBack(fist)
  在fist之后添加high
  l。InsertAfter(high,element)
  在fist之前添加noon
  l。InsertBefore(noon,element)
  使用
  l。Remove(element)
  }
  代码说明如下:
  第6行,创建列表实例。
  第9行,将字符串canon插入到列表的尾部。
  第12行,将数值67添加到列表的头部。
  第15行,将字符串fist插入到列表的尾部,并将这个元素的内部结构保存到element变量中。
  第18行,使用element变量,在element的位置后面插入high字符串。
  第21行,使用element变量,在element的位置前面插入noon字符串。
  第24行,移除element变量对应的元素。
  下表中展示了每次操作后列表的实际元素情况。
  操作内容
  列表元素
  l。PushBack(canon)
  canon
  l。PushFront(67)
  67,canon
  element:l。PushBack(fist)
  67,canon,fist
  l。InsertAfter(high,element)
  67,canon,fist,high
  l。InsertBefore(noon,element)
  67,canon,noon,fist,high
  l。Remove(element)
  67,canon,noon,high
  列表元素操作的过程
  遍历列表访问列表的每一个元素
  遍历双链表需要配合Front()函数获取头元素,遍历时只要元素不为空就可以继续进行,每一次遍历都会调用元素的Next()函数,代码如下所示。
  l:list。New()
  尾部添加
  l。PushBack(canon)
  头部添加
  l。PushFront(67)
  fori:l。Front();i!nil;ii。Next(){
  fmt。Println(i。Value)
  }
  代码输出如下:
  67hrcanon
  代码说明如下:
  第1行,创建一个列表实例。
  第4行,将canon放入列表尾部。
  第7行,在队列头部放入67。
  第9行,使用for语句进行遍历,其中i:l。Front()表示初始赋值,只会在一开始执行一次,每次循环会进行一次i!nil语句判断,如果返回false,表示退出循环,反之则会执行ii。Next()。
  第10行,使用遍历返回的list。Element的Value成员取得放入列表时的原值。

20部必看科幻电影科幻片佳作能丰富你人生知识2020因为新冠疫情的缘故,目前还有很大一部分人待在家里,这时电影就是最好的陪伴了,特别是科幻电影更能满足大家寂寞的心,本文推荐20部必看科幻电影,综合精选了口碑和票房都不错的……ipadmini6退订了ipadmini6的机身尺寸为195。4134。86。3毫米,搭载的是一块8。3英寸的Liquid视网膜屏,拥有原彩显示、P3广色域显示和超低反射率。跟mini5一样,没有任何……美国科幻电影2019前十名好看又刺激令人欲罢不能美国科幻电影可以说是非常好看又刺激的了,各种场面科技感十足,简直让人欲罢不能。那么我们来看看美国科幻电影2019前十名都有什么吧!美国科幻电影2019前十名第一名:《复仇……有什么好看的科幻电影好看的科幻片排行榜前十名有什么好看的科幻电影?大家看过多少部好看的科幻片了?这里给大家整理了近2两年内火曝的科幻片,好看的科幻片排行榜前十名(排名不分先后),感兴趣的收起来吧。1、《移动迷宫3:……科幻电影14部推荐2019美国科幻电影排行榜前十名科幻电影推荐,精选好看的科幻电影14部。科幻电影有很多,科幻片之所以受欢迎就是因为特效和奇幻的故事情节。下面整理了14部科幻电影和2019美国科幻电影排行榜前十名,一起来看看吧……2019科幻电影推荐这30部科幻片让科幻迷过足瘾2019科幻电影你看过哪些呢?本文强烈推荐的30部经典科幻电影,看过十部以上就是合格的科幻迷,希望这30部科幻片让科幻迷过足瘾。科幻电影推荐2019过足科幻瘾1、《阿丽塔……最前线腾讯订制25万份中秋月饼,盒用甘蔗渣做的文蒲诗钰编辑苏建勋中秋将至,腾讯对内部员工、外部合作伙伴订制了约25万份月饼。9月14日,腾讯官方账号发布短视频,介绍今年腾讯环保月饼盒制作的幕后故事。视频中……科幻片排行榜前十名欧美科幻电影前十名盘点欧美科幻电影有哪些?很多人喜欢看科幻电影,喜欢里面的高科技。下面,我们就来看看欧美科幻电影排行榜前十名如下:欧美科幻电影排行榜1:《人工智能》ArtificialInte……10大科幻电影科幻电影史上的10大美女(图)10大科幻电影:科幻电影史上的10大美女(图)在科幻片中女主角总是浑身散发出无比的魅力,让男性情不自禁的为她所吸引。下面就让我们一起来看看这些在科幻片中大放光彩的美女排行……关于怪兽的科幻电影十部科幻怪兽电影惊险刺激的电影推荐十部科幻怪兽电影,科幻惊悚电影《哥斯拉》,科幻冒险电影《尼斯湖怪:深水传说》,科幻惊悚电影《汉江怪兽》,豆瓣评分:7。2惊悚电影《鲨滩》,科幻惊悚电影《变蝇人》,动作科幻电……文章演的电视剧姚笛演过的电视剧文章演的电视剧:姚笛演过的电视剧文章演过的电视剧2017在《剃刀边缘》中饰演许从良(导演:文章)2015在《少帅》中饰演张学良(导演:张黎)201309……橙红年代马思纯饰演角色胡蓉介绍与角色刘子光擦出火花橙红年代马思纯饰演角色胡蓉介绍:与角色刘子光擦出火花电视剧《橙红年代》即将播出,作为这部戏最大的看点应该就是陈伟霆和马思纯的合作,通过官方微博po出的剧照来看,马思纯的造……
5G手机红米有谁使用过体验怎样?大家用的手机是什么牌注重什么感谢您的阅读!5G手机红米谁使用过?体验如何?红米的手机我自然使用过,而且我现在使用的是红米目前的性价比相对比较高的手机红米note10Pro。这款手机确实有……虚拟数字人扎堆亮相商业化仍艰难探索本报记者曲忠芳李正豪北京报道虚拟偶像、智能助理、数字员工、虚拟大学生各种各样的虚拟数字人,近两年来密集出现在各大社交平台,并参与到我们的经济和社会生活中。《中国经营报》记……汇付天下发布全新战略定位,引领数字化支付近日,国内领先的第三方支付公司汇付天下发布全新战略定位引领数字化支付,为企业收款和资金管理提供平台服务。全新定位的发布,意味着这家拥有16年发展历史的老牌支付公司正在积极拥抱数……遍知教育与中传合作推好声音创造营精品课探索新文娱产教融合新路1月11日,在知遍而升2022遍知教育盛典上,遍知教育宣布产品、服务、生态三方面升级,未来将聚焦职业教育、兴趣学习、家庭教育三大方向。其中围绕着兴趣学习领域,遍知教育联合爱奇艺……送外卖一天跑7个小时能有多少钱,乐跑和众包又有不同!我来说说我也很好奇那么多人送外卖!到底是怎么一个工作时间和收入!亲身体验下!我先选择跑了众包!我是有老员工推荐的!为什么呢?因为现在拉新人进众包有奖励!就是我可以有170,……阿里女员工的老公知道事情的真相后会离婚吗?不好说,完全在于当事人的决定刚刚浏览头条新闻刷到两条消息。一条说阿里涉嫌性侵事件的男主人公被监视居住了,这意思就是从拘留所给放出来了,虽然事情并未结束,但起码获得了短暂的……微信又更新了,你学会新功能了吗?最近微信又迎来了一波更新,越来越多的新功能,跟上社会互联网的步伐,满足广大用户的使用需求,我给大家说说新功能,你们都会使用了吗?现在我们安卓微信的版本已经到8。0。10版……SEO小技巧之网站篇互联网时代,利用网站来做推广是很多企业首选的推广宣传方式,而网站推广最重要的就是在搜索引擎中的排名,所以也有越来越多的企业开始重视网站的SEO,SEO人员也都知道,想要网站获得……挣快钱的时代,真的要结束了踏实做实业和技术,以后会越来越受追捧以后没有技术含量的虚拟产业,将不再受到热捧,而以下领域,将成为重点发展领域:5G、人工智能、量子信息、新能源、航天发动机、芯片、……NikonZ9将在10月份发布看看Z9庞大的身材,叫微单真不太好意思,还是叫无反Z9吧!Z9已经在东京奥运会实测,发布在即。这款无反的基本参数与以前的传言有不小的区别一、CMOS分辨率45……不再谈颠覆医疗的互联网医疗前言不再谈颠覆医疗的互联网医疗开始有了历史感,从19年开始的回顾风这算忆甜思苦么?不是跟风,本专栏早些文章都在重复一个观点:阳光底下没有新鲜事。只不过现在全行业反思回顾,有些观……编程的本质是什么?编程是软件工程的核心。实施CMMI,是为了提高组织软件工程的能力。所以,了解编程的本质也有助于组织更好地实施GJB5000。那么什么是编程的本质?最初的编程是……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网