在go语言中我们可以利用map中key的唯一性对切片进行去重操作:
package main
import "fmt"
func main() {
s := []string{"张", "王", "李", "赵", "张", "王", "李", "赵"}
fmt.Println(removeDuplicateElement(s))
}
func removeDuplicateElement(languages []string) []string {
result := make([]string, 0, len(languages))
temp := map[string]struct{}{}
for _, item := range languages {
if _, ok := temp[item]; !ok { //如果字典中找不到元素,ok=false,!ok为true,就往切片中append元素。
temp[item] = struct{}{}
result = append(result, item)
}
}
return result
}
在removeDuplicateElement函数中,初始化了一个新的切片和map,map的键为字符串类型用来保存切片的值,map的值为空结构体类型,空结构体不会占用内存,使用它来实现我们的函数空间复杂度是最低的。最后实现了切片去重的功能。
本文介绍了一种在Go语言中使用map实现切片去重的方法。通过将切片元素作为map的键,利用其唯一性特性,可以高效地去除重复元素。此方法通过检查元素是否已存在于map中来避免重复添加,最终返回一个不包含重复项的新切片。
1012

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



