返回顶部
首页 > 资讯 > 后端开发 > GO >GO中对map排序的实现
  • 234
分享到

GO中对map排序的实现

GOmap排序GOmapkey排序GOmapvalue排序 2023-03-06 11:03:29 234人浏览 安东尼
摘要

目录前言按Key顺序输出map按Value顺序输出map前言 Go语言中,map是哈希表,能够将特定类型的key映射到特定类型的Value上。在查询Map里面的内容时,其时间复杂度为

前言

Go语言中,map是哈希表,能够将特定类型的key映射到特定类型的Value上。在查询Map里面的内容时,其时间复杂度为O(1)非常高效。但其存储并不是线性的,遍历输出时,也没有顺序可言。如果需要按顺序的输出map中的元素,就需要借助其他数据结构的帮助。

按照需求,本文分别提供了按Key顺序输出map、按Value顺序输出map两种方法。

按Key顺序输出map

思路就是,先将key存储下来进行排序,然后按照排序后的顺序依次访问map,得到排序后的结果:

package main

import (
    "fmt"
    "sort"
)

func main() {
    m := make(map[int]int)
    m[2] = 5
    m[3] = 7
    m[1] = 6
    m[10] = 22
    m[8] = 9
    m[4] = 7
    fmt.Println("not sort:")
    for k, v := range m {
        fmt.Println(k, v)
    }
    // 得到key值
    var ks []int
    for k, _ := range m {
        ks = append(ks, k)
    }
    //对key排序
    sort.Ints(ks)
    //输出结果
    fmt.Println("sort:")
    for _, v := range ks {
        fmt.Println(v, m[v])
    }
}

按Value顺序输出map

思路就是,先将map中的值,存储到一个结构体中,然后将结构体实现Sort接口实现排序,再输出结果,代码如下:

package main

import (
    "fmt"
    "sort"
)

//定义结构体存放map值
type temp struct {
    k int
    v int
}
type temps []temp

//  实现sort包中Interface接口

func (t temps) Len() int {
    return len(t)
}

func (t temps) Less(i, j int) bool {
    return t[i].v < t[j].v
}

func (t temps) Swap(i, j int) {
    t[i], t[j] = t[j], t[i]
}

func main() {
    m := make(map[int]int)

    m[2] = 5
    m[3] = 7
    m[1] = 6
    m[10] = 22
    m[8] = 9
    m[4] = 7
    fmt.Println("not sort:")
    for k, v := range m {
        fmt.Println(k, v)
    }
    // 得到key值
    var ts temps
    for k, v := range m {
        ts = append(ts, temp{k: k, v: v})
    }
    //对key排序
    sort.Sort(ts)
    //输出结果
    fmt.Println("sort:")
    for _, v := range ts {
        fmt.Println(v.k, v.v)
    }

}

到此这篇关于GO中对map排序的实现的文章就介绍到这了,更多相关GO map排序内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: GO中对map排序的实现

本文链接: https://lsjlt.com/news/198618.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • GO中对map排序的实现
    目录前言按Key顺序输出map按Value顺序输出map前言 GO语言中,map是哈希表,能够将特定类型的key映射到特定类型的Value上。在查询Map里面的内容时,其时间复杂度为...
    99+
    2023-03-06
    GO map排序 GO map key排序 GO map value排序
  • GO中怎么对map排序
    本篇内容主要讲解“GO中怎么对map排序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“GO中怎么对map排序”吧!前言GO语言中,map是哈希表,能够将特定类型的key映射到特定类型的Value...
    99+
    2023-07-05
  • java中Map排序的实现
    map是键值对的集合接口,它的实现类主要包括:HashMap、TreeMap、Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍):HashMap:我们最常用的Map,它根据key的HashCode 值来存储...
    99+
    2020-03-03
    java教程 java Map 排序
  • java中对Map中的key顺序排序
    使用List的默认方法 sort 或者 Collections.sort 进行排序这种方法需要对map的key进行转换 Map map=new HashMap();map.put("4","maliu...
    99+
    2023-09-22
    java
  • golang 实现对Map进行键值自定义排序
    看代码吧~ //自定义结构体,用来自定义排序 type RecentlyUpdateListMapSorter []map[string]interface{} //根据MapS...
    99+
    2024-04-02
  • java可以对map的key排序吗
    Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 (推荐学习:java课程)TreeMap:基于红黑树(Red-Black tree)的 Navigab...
    99+
    2017-10-20
    java入门 java
  • Android 对Map按key和value分别排序的实例
    一. 理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(...
    99+
    2022-06-06
    value map 排序 key Android
  • Java项目中怎么对Map进行排序
    这篇文章将为大家详细讲解有关Java项目中怎么对Map进行排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 Java Map的排序实例详解要对Map中的key-value键值对进...
    99+
    2023-05-31
    java map 进行排序
  • java中实现对类的对象进行排序
    我们需要对类按照类中的某一个属性(或者多个属性)来对类的对象进行排序,有两种方法可以实现,一种方法是类实现Comparable接口,然后调用Collections.sort(List)方法进行排序,另一种方法是类不实现Comparable接...
    99+
    2022-03-08
    java教程 java 实现 对象 排序
  • java map根据值排序怎么实现
    要根据Map的值进行排序,可以使用Java 8中的Stream和Lambda表达式来实现。下面是一个示例代码: import jav...
    99+
    2023-10-21
    java
  • Python实现针对中文排序的方法
    本文实例讲述了Python实现针对中文排序的方法。分享给大家供大家参考,具体如下: Python比较字符串大小时,根据的是ord函数得到的编码值。基于它的排序函数sort可以很容易为数字和英文字母排序,因为...
    99+
    2022-06-04
    中文 方法 Python
  • java map的key排序吗
    java map的key排序吗java为数据结构中的映射定义了一个接口java.util.Map,他实现了四个类,分别是:HashMap,HashTable,LinkedHashMapTreeMap,Map不允许键重复,但允许值重复1.Ha...
    99+
    2016-04-13
    java基础 java map key 排序
  • go map搬迁的实现
    目录能具体解释一下这两种情况吗?下面开始准备搬迁了别着急,正式搬迁才刚刚开始先找找可能的目标桶位置吧遍历bucket链表,一个个迁移事后事(整理)也别忘记了最后,要不要看下是不是全搬...
    99+
    2023-05-16
    go map搬迁 Go map迁移
  • go实现冒泡排序算法
    目录1、基本思想2、算法步骤第一轮开始排序: 第二轮开始排序: 第三轮开始排序: 第四轮开始排序: 3、算法实现1、基本思想 通过对待排序序列...
    99+
    2024-04-02
  • 对切片进行排序:利用排序方法实现切片排序
    目前编程网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《对切片进行排序:利用排序方法实现切片排序》,也希望能帮助到大家,如果阅读完后真的对你学习G...
    99+
    2024-04-04
  • go语言yaml转map、map遍历的实现
    yaml文件内容 apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: mysql-snaps...
    99+
    2024-04-02
  • Map怎么实现按单个或多个Value排序
    本篇内容主要讲解“Map怎么实现按单个或多个Value排序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Map怎么实现按单个或多个Value排序”吧!Map可以先按照value进行排序,然后按照...
    99+
    2023-07-05
  • 怎么在golang中对Map进行键值自定义排序
    本篇文章为大家展示了怎么在golang中对Map进行键值自定义排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。golang适合做什么golang可以做服务器端开发,但golang很适合做日志处理、...
    99+
    2023-06-14
  • Golang中Map按照Value大小排序的方法实例
    目录起因探索实现第一步第二步第三步总结总结Golang中的 map 默认是 无序的 。 起因 最近项目中有这样一个需求: 根据用户当前的坐标点,获取该用户附近的预设城市名称。 这里有...
    99+
    2024-04-02
  • go语言堆排序怎么实现
    Go语言堆排序的实现步骤如下: 首先,定义一个用于进行堆调整的函数 adjustHeap,该函数接受三个参数:待调整的切片 arr...
    99+
    2023-10-22
    go语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作