golang使用sort接口实现排序示例
本文实例讲述了golang使用sort接口实现排序的方法。分享给大家供大家参考,具体如下:
今天看见群里再讨论排序的sort.Interface的实现,有童鞋一直搞不定,我就上手了一下,哦耶搞定了,代码放在这里.
其实很简单sort.Interface借口有三个方法,给自己的struct实现这三个方法,然后用将自己的结构体传给sort.Sort方法就排序完成.
当然sort包也有几个常用的方法sort.Float64Slicesort.IntSlisesort.StringSlise,呵呵
packagemain
import(
"fmt"
"sort"
)
typeMapSorter[]Item
typeItemstruct{
Keystring
Valint64
}
funcNewMapSorter(mmap[string]int64)MapSorter{
ms:=make(MapSorter,0,len(m))
fork,v:=rangem{
ms=append(ms,Item{k,v})
}
returnms
}
func(msMapSorter)Len()int{
returnlen(ms)
}
func(msMapSorter)Less(i,jint)bool{
returnms[i].Val<ms[j].Val//按值排序
//returnms[i].Key<ms[j].Key//按键排序
}
func(msMapSorter)Swap(i,jint){
ms[i],ms[j]=ms[j],ms[i]
}
funcmain(){
m :=map[string]int64{
"e":10,
"a":2,
"d":15,
"c":8,
"f":1,
"b":12,
}
ms:=NewMapSorter(m)
sort.Sort(ms)
for_,item:=rangems{
fmt.Printf("%s:%d\n",item.Key,item.Val)
}
}
希望本文所述对大家Go语言程序设计有所帮助。
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语