golang使用sort接口实现排序示例
作者:dotcoo 时间:2024-02-21 09:42:11
本文实例讲述了golang使用sort接口实现排序的方法。分享给大家供大家参考,具体如下:
今天看见群里再讨论排序的sort.Interface的实现,有童鞋一直搞不定,我就上手了一下,哦耶搞定了,代码放在这里.
其实很简单sort.Interface借口有三个方法,给自己的struct实现这三个方法,然后用将自己的结构体传给sort.Sort方法就排序完成.
当然sort包也有几个常用的方法sort.Float64Slice sort.IntSlise sort.StringSlise,呵呵
package main
import (
"fmt"
"sort"
)
type MapSorter []Item
type Item struct {
Key string
Val int64
}
func NewMapSorter(m map[string]int64) MapSorter {
ms := make(MapSorter, 0, len(m))
for k, v := range m {
ms = append(ms, Item{k, v})
}
return ms
}
func (ms MapSorter) Len() int {
return len(ms)
}
func (ms MapSorter) Less(i, j int) bool {
return ms[i].Val < ms[j].Val // 按值排序
//return ms[i].Key < ms[j].Key // 按键排序
}
func (ms MapSorter) Swap(i, j int) {
ms[i], ms[j] = ms[j], ms[i]
}
func main(){
m := map[string]int64 {
"e": 10,
"a": 2,
"d": 15,
"c": 8,
"f": 1,
"b": 12,
}
ms := NewMapSorter(m)
sort.Sort(ms)
for _, item := range ms {
fmt.Printf("%s:%d\n", item.Key, item.Val)
}
}
希望本文所述对大家Go语言程序设计有所帮助。
标签:golang,sort接口,排序
0
投稿
猜你喜欢
Python与C语言分别完成排序流程
2023-04-19 08:26:24
如何用python绘制雷达图
2023-04-19 12:44:09
Python 使用多属性来进行排序
2023-11-10 21:15:07
Django+zTree构建组织架构树的方法
2023-08-13 06:17:54
图片预加载效果的实现
2008-06-16 12:08:00
分析python请求数据
2023-09-26 08:46:08
Python列表元素常见操作简单示例
2022-08-18 08:33:57
oracle的一些tips技巧
2009-03-02 11:06:00
MySQL查询优化:连接查询排序limit(join、order by、limit语句)介绍
2024-01-21 19:06:16
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2024-04-17 10:41:20
pytorch 实现cross entropy损失函数计算方式
2022-03-18 00:45:50
一些关于Go程序错误处理的相关建议
2023-07-21 22:46:43
python读取hdfs上的parquet文件方式
2021-04-07 11:54:31
Python中ROS和OpenCV结合处理图像问题
2023-04-27 00:33:02
PHP观察者模式原理与简单实现方法示例
2024-05-03 15:49:15
django 做 migrate 时 表已存在的处理方法
2022-02-14 16:11:53
让设计散发文化韵味
2009-03-22 15:01:00
利用matplotlib实现根据实时数据动态更新图形
2023-07-17 18:50:45
Django web框架使用url path name详解
2022-01-06 19:43:59
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2022-03-22 02:09:02