zoukankan      html  css  js  c++  java
  • Go切片去掉重复元素

    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
    }

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

  • 相关阅读:
    Windows:生成环境Word,PPT,EXCEL com+组件配置
    Win10 计算机管理 打不开应急办法
    Js:弹窗剧中
    Asp.net跨域配置
    Centos6系列安装nginx
    Win_oracle_exp/expdp备份
    MSSQL:查看某个账号使用得数据库
    MSSQL:查看作业情况
    MSSQL:账号无法删除方案
    MSSQL:删除系统作业计划
  • 原文地址:https://www.cnblogs.com/yukixing/p/11714630.html
Copyright © 2011-2022 走看看