文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何确保地图内的整数数组元素唯一性?

2024-04-04 23:42

关注

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《如何确保地图内的整数数组元素唯一性?》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我有一个字符串和 int 数组的映射,如下所示,正在填充 -

var customerCatalog = make(map[string][]int64)
  for ... {
        var data = "....."
        for _, catalogId := range data.Catalogs {
            var ok bool
            var keys []int64
            var tmp interface{}
            cusId := strconv.FormatInt(int64(catalogId), 10)
            if tmp, ok = customerCatalog[cusId]; !ok {
                keys = []int64{}
            } else {
                keys = tmp.([]int64)
            }
            keys = append(keys, data.ProductId)
            customerCatalog[cusId] = keys
        }
    }

这里data.catalogs是int32数组。 data.productid 是 int64。因此,我需要循环 data.catalogs 数组,并使用每个 data.productid 键的唯一数组值填充我的 customercatalog 映射。

正如你所看到的,我将地图的值作为整数数组,其中可以有重复的值。我想确保映射中特定键的整数数组应具有唯一值。由于 go 不支持泛型,所以我们没有设置,那么我们应该如何处理这种情况?


正确答案


由于 go 不支持泛型,所以我们没有设置

集合通常使用哈希表的键来实现;忽略这些值。

在 go 中,使用 map[int64]bool

// Check if an array contains only unique values.
func is_unique(array []int64) bool {
  var unique = map[int64]bool{}

  for _,v := range(array) {
    if unique[v] {
      return false
    }
    unique[v] = true
  }

  return true
}

// Return a deduplicated array
func uniq(array []int64) []int64 {
  var unique = map[int64]bool{}
  keys := make([]int64, 1)

  for _,v := range(array) {
    if _, ok := unique[v]; !ok {
      keys = append(keys, v)
      unique[v] = true
    }
  }

  return keys
}

本篇关于《如何确保地图内的整数数组元素唯一性?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注编程网公众号!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯