1.5.6 map排序技巧

一、按key排序

  1. Go语言的map不保证有序性,所以key排序需要先取出key,再对key排序,然后遍历输出value

    func map1() {
    	// 创建map
    	m := make(map[int]string)
    	m[0] = "I"
    	m[2] = "Go"
    	m[1] = "Love"
    
    	// 将键值按排序顺序存储在切片中
    	var keys []int
    	for k := range m {
    		keys = append(keys, k)
    	}
    	sort.Ints(keys)
    
    	for _, k := range keys {
    		fmt.Println("key:", k, "value:", m[k])
    	}
    }

    结果:

    key: 0 value: I
    key: 1 value: Love
    key: 2 value: Go

二、按value排序

  1. 如果要对Gomap按照value进行排序,思路是:先导入sort包,然后调用sort.Slice函数进行排序

    结果:

三、按照map字符出现的频率降序

  1. 计算字符串的初夏你频率,并按照频率降序排序

  2. 在Go语言中,提供了sort.Slice()函数,可用来对map进行排序

    结果:

Last updated