教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang学习之map排序方法

golang学习之map排序方法

发布时间:2021-12-04   编辑:jiaochengji.com
教程集为您提供golang学习之map排序方法等资源,欢迎您收藏本站,我们将为您提供最新的golang学习之map排序方法资源

实际操作中遇到map无法排序问题,借鉴前辈的方案(亲测可行)

注意:Golang中的map默认是无序的,每次遍历,得到的输出结果可能不一样。

Golang中的map排序

<ol><li>将map的key放到切片中;</li><li>对切片排序;</li><li>遍历切片,然后来按key来输出map的值。</li></ol><pre><code>package main import ( "sort" "fmt" ) func main() { lockTest() } func lockTest() { map1 := make(map[string]int) map1["3"] = 11 map1["5"] = 5 map1["1"] = 7 map1["4"] = 23 map1["2"] = 42 sortMap2(map1) fmt.Println() sortMap(map1) } //根据key排序 func sortMap2(mp map[string]int) { //1.将map1的key放到切片中 var newMap = make([]string, 0) for k, _ := range mp { newMap = append(newMap, k) } //2.对切片排序 sort.Strings(newMap) //3.遍历切片,然后按key来输出map的值 for _, v := range newMap { fmt.Printf("根据key排序后的新集合为:[%v]=%v \n", v, mp[v]) } } //根据value排序 func sortMap(mp map[string]int) { var newMp = make([]int, 0) var newMpKey = make([]string, 0) for oldk, v := range mp { newMp = append(newMp, v) newMpKey = append(newMpKey, oldk) } sort.Ints(newMp) for k, v := range newMp { fmt.Printf("根据value排序后的新集合为:[%v]=%v \n", newMpKey[k], v) //fmt.Println("根据value排序后的新集合为 key:", newMpKey[k], " value:", v) } } </code></pre>

执行结果如下图所示:

 

到此这篇关于“golang学习之map排序方法”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang学习之map排序方法
Golang结构体和map
Golang Study 三 map的顺序输出
golang key map 所有_golang系列——高级语法之map
Golang从入门到放弃200618--Map(1)Map的初始化和基本操作
golang map key 正则表达_Golang中的Map
golang Map进行键值自定义排序
golang map 锁_Golang线程安全的map
golang map 锁_golang中线程安全的map
Go-sort对map的value进行排序

[关闭]
~ ~