最近在写一个小项目的时候需要将数据去重,搜了搜文档发现好像没有去重的实现。就是类似C++的unique
所以只能手动实现一下了,在此记录一下。
思路很简单就是利用内置的map逐个判断就好了,最后我还排了个序,返回一个去重并且排过序的切片
func unique_sort(slice []int) []int {
res := make([]int, 0)
mp := make(map[int]bool, len(slice))
for _, e := range slice {
if mp[e] == false {
mp[e] = true
res = append(res, e)
}
}
sort.Slice(res, func(i, j int) bool {
return res[i] < res[j]
})
return res
}
func main() {
a := []int{1, 1, 2, 4, 5, 3, 3, 1}
res := unique_sort(a)
fmt.Println(res)
}
运行结果如下

本文介绍了一种使用Go语言实现数据去重和排序的方法。通过遍历切片并利用map数据结构来检查元素是否已存在,从而实现数据去重。之后,使用sort.Slice函数对去重后的数据进行排序,最终返回一个既去重又排序的新切片。
117

被折叠的 条评论
为什么被折叠?



