baby sword‘s blog baby sword‘s blog
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)

zhengjian

不敢承担失去的风险,是不可能抓住梦想的
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)
  • 华仔聊技术

  • 业务设计

  • 场景设计

  • 运维

  • 安全

  • 面试

  • mac相关工具推荐

  • 开发工具

  • 人工智能

  • 推荐

  • 阅读

  • 工具

  • 计划

  • 产品

  • 云原生

  • go

    • 基础
    • go项目
    • go channel
    • go list
      • go testing模块
      • go指针
      • go实现LRU
      • go数据结构的内存实现
      • go interfaces
      • go项目分包相关
      • 协程实现原理
      • 垃圾回收与写屏障
      • gin
      • go中flag的使用
      • go dig
      • linux环境快速搭建go
    • QVM

    • 软件设计师

    • 极客时间

    • 单元测试

    • 其他
    • go
    xugaoyi
    2023-08-06
    目录

    go list

    # 简介

    在Go语言中,list 包是标准库中 提供的一个双向链表(doubly linked list)实现。它提供了一种方便的数据结构,用于存储和操作双向链表的元素。

    # 如何使用

    1. 包 container/list
    2. 如何创建一个listlist:=list.New()

    # 常见方法

    1. list.List 类型:list.List 是双向链表的主要类型,表示一个双向链表的实例。它包含了双向链表的头部和尾部元素,以及当前链表中的元素数量。
    2. list.Element 类型:list.Element 表示 list.List 中的一个元素,即链表中的节点。每个节点都包含了一个 Value 字段,可以存储任意类型的数据。
    3. func (l *List) PushFront(v interface{}) *Element:将一个值 v 插入到双向链表的头部,并返回对应的链表元素 Element。
    4. func (l *List) PushBack(v interface{}) *Element:将一个值 v 插入到双向链表的尾部,并返回对应的链表元素 Element。
    5. func (l *List) Remove(e *Element):从链表中移除给定的链表元素 e。
    6. func (l *List) MoveToFront(e *Element):将给定的链表元素 e 移动到链表的头部。
    7. func (l *List) MoveToBack(e *Element):将给定的链表元素 e 移动到链表的尾部。
    8. func (l *List) Len() int:返回链表中元素的数量。
    9. func (l *List) Front() *Element:返回链表的头部元素。
    10. func (l *List) Back() *Element:返回链表的尾部元素。

    比较java的LinkedList,java的LinkedList无法将某些元素移动到列表尾部或顶部,go可以通过这个特性很简单的实现LRU算法

    编辑 (opens new window)
    上次更新: 2024/02/22, 14:03:19
    go channel
    go testing模块

    ← go channel go testing模块→

    最近更新
    01
    spark基础
    02-22
    02
    mysql读写分离和分库分表
    02-22
    03
    数据库迁移
    02-22
    更多文章>
    Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式