Go语言数组去重

2021-05-10  本文已影响0人  charmingBueaty

在使用Go语言的时候,碰到了需要对数组进行去重操作的问题。Java语言有Set集合这个数据结构,可以很方便的将数组转为集合,但是Go语言没有Set,如果仅仅是因为去重操作就手动实现一个Set太繁琐了。可以根据Go语言中的map的特性来简单实现一下

func main() {
    list := []string {"hello", "hello"}
    list = removeRepeatElement(list)
    fmt.Println(list)
}

func removeRepeatElement(list []string) []string{
    // 创建一个临时map用来存储数组元素
    temp := make(map[string]bool)
    index := 0
    for _, v := range list {
        // 遍历数组元素,判断此元素是否已经存在map中
        _, ok := temp[v]
        if ok {
            list = append(list[:index], list[index+1:]...)
        } else {
            temp[v] = true
        }
        index++
    }
    return list
}
// 输出:
// [hello]

这个是对字符串数组去重操作。可以根据需要的类型稍作修改即可。需要注意的是只支持可以作为map键的结构进行去重!

上一篇 下一篇

猜你喜欢

热点阅读