Golang map字典按照键排序和按照值排序

180it 2020-10-26 PM 2080℃ 0条

Golang map字典按照键排序和按照值排序

字典按键排序

package main

import (
    "fmt"
    "sort"
)

func main() {
    m := map[string]int32{
        "roy":   18,
        "kitty": 16,
        "hugo":  21,
        "tina":  35,
        "jason": 23,
    }
    lst := []string{}
    for k, _ := range m {
        lst = append(lst, k)
    }
    sort.Strings(lst) //排序字符串
    fmt.Println(lst)

    m1 := map[int]string{
        19: "roy",
        41: "kitty",
        32: "jason",
        23: "hugo",
    }
    lst1 := []int{}
    for k, _ := range m1 {
        lst1 = append(lst1, k)
    }
    sort.Ints(lst1)        //排序int类型
    fmt.Println(lst1)
}

通过结构体实现字典按值排序。

package main

import (
    "fmt"
    "sort"
)

func main() {
    mapInfo := map[string]int32{
        "roy":18,
        "kitty":16,
        "hugo":21,
        "tina":35,
        "jason":23,
    }

    type peroson struct {
        Name string
        Age int32
    }

    var lstPerson []peroson
    for k, v := range mapInfo {
        lstPerson = append(lstPerson, peroson {k, v})
    }

    sort.Slice(lstPerson, func(i, j int) bool {
        return lstPerson[i].Age > lstPerson[j].Age  // 降序
        // return lstPerson[i].Age < lstPerson[j].Age  // 升序
    })

    fmt.Println(lstPerson)
}

按值排序 转载自:https://www.golangnote.com/topic/75.html

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

Golang map字典按照键排序和按照值排序