新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

Golang map排序怎样设置,golang对map排序

发布时间:2023-10-21 14:28:24

Golang map排序怎样设置

在Go语言中,map是无序的,没法直接排序。但是可以通过将map的键还是键值对提取到slice中,然后使用sort包对slice进行排序。

以下是一个示例代码,展现如何对map的键进行排序:

package main

import (
	"fmt"
	"sort"
)

func main() {
	m := map[string]int{
		"banana": 2,
		"apple":  1,
		"orange": 3,
	}

	keys := make([]string, 0, len(m))
	for k := range m {
		keys = append(keys, k)
	}

	sort.Strings(keys)

	for _, k := range keys {
		fmt.Printf("%s: %d
", k, m[k])
	}
}

输出结果:

apple: 1
banana: 2
orange: 3

在这个示例中,首先创建一个空的字符串切片keys,然后使用for循环遍历map的键,并将键添加到keys切片中。接着,使用sort.Strings()函数对切片keys进行排序。最后,使用for循环遍历排序后的切片,依照排序后的顺序打印出map的键和对应的值。

如果要对map的键值对进行排序,可使用一个自定义的结构体切片,并实现sort.Interface接口的Len()Less()Swap()方法进行排序。具体实现方式可以参考Go语言官方文档中的示例代码:https://golang.org/pkg/sort/#example__sortKeys