package sliceutil import "sort" // RemoveDuplicatesWithMap 使用 map 去除重复元素 func RemoveDuplicatesWithMap[T comparable](slice []T) []T { result := make([]T, 0, len(slice)) seen := make(map[T]bool) for _, v := range slice { if _, ok := seen[v]; !ok { seen[v] = true result = append(result, v) } } return result } // RemoveDuplicatesWithSort 先排序再去重 func RemoveDuplicatesWithSort(slice []int) []int { if len(slice) == 0 { return slice } sort.Ints(slice) result := []int{slice[0]} for i := 1; i < len(slice); i++ { if slice[i] != slice[i-1] { result = append(result, slice[i]) } } return result }