当前位置: 移动技术网 > IT编程>脚本编程>Go语言 > Go切片去掉重复元素

Go切片去掉重复元素

2019年10月22日  | 移动技术网IT编程  | 我要评论

1.go切片去掉重复元素

如果传入的是string类型:

//slice去重
func removerepbymap(slc []string) []string {
    result := []string{}         //存放返回的不重复切片
    tempmap := map[string]byte{} // 存放不重复主键
    for _, e := range slc {
        l := len(tempmap)
        tempmap[e] = 0 //当e存在于tempmap中时,再次添加是添加不进去的,,因为key不允许重复
        //如果上一行添加成功,那么长度发生变化且此时元素一定不重复
        if len(tempmap) != l { // 加入map后,map长度变化,则元素不重复
            result = append(result, e) //当元素不重复时,将元素添加到切片result中
        }
    }
    return result
}

如果传入的是int类型:

//slice去重
func removerepbymap(slc []int) []int {
    result := []int{}         //存放返回的不重复切片
    tempmap := map[int]byte{} // 存放不重复主键
    for _, e := range slc {
        l := len(tempmap)
        tempmap[e] = 0 //当e存在于tempmap中时,再次添加是添加不进去的,,因为key不允许重复
        //如果上一行添加成功,那么长度发生变化且此时元素一定不重复
        if len(tempmap) != l { // 加入map后,map长度变化,则元素不重复
            result = append(result, e) //当元素不重复时,将元素添加到切片result中
        }
    }
    return result
}

 当然如果传入的是其它类型,把对应类型改掉即可

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网