golang set集合实现去重及交叉并集计算
rfyiamcool · · 6982 次点击 · · 开始浏览还是需要吐槽下golang默认的标准库不是很全面,虽然可以通过map来实现简易的set集合,但这毕竟费工夫呀。不知道golang啥时候才能有个较完美的库包服务,类似python的pypi,node.js的npm...
该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。
我这边有个场景是针对数据去重,但又不是简单的去重,是有时间区间范围内的交集、并集计算。
废话不多说,我估计有不少人记不清集合的并集、差集、交集的概念了。
集合的分类:
并集:以属于A或属于B的元素为元素的集合成为A与B的并(集)
交集: 以属于A且属于B的元素为元素的集合成为A与B的交(集)
差集:以属于A而不属于B的元素为元素的集合成为A与B的差 (集)
如果只是去重的化,完全可以使用golang map实现。比如下面的例子就可以实现去重。
和我们预料的一样,必须出错 !
golang-set是我在github找到的一个库,其实也没得选.... go get 安装go库包时候因为参数不对,总是失败....
下面是go set的使用实例.
上面那段go代码运行的结果:
set集合本来就没啥说的....
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
还是需要吐槽下golang默认的标准库不是很全面,虽然可以通过map来实现简易的set集合,但这毕竟费工夫呀。不知道golang啥时候才能有个较完美的库包服务,类似python的pypi,node.js的npm...
该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。
我这边有个场景是针对数据去重,但又不是简单的去重,是有时间区间范围内的交集、并集计算。
废话不多说,我估计有不少人记不清集合的并集、差集、交集的概念了。
集合的分类:
并集:以属于A或属于B的元素为元素的集合成为A与B的并(集)
交集: 以属于A且属于B的元素为元素的集合成为A与B的交(集)
差集:以属于A而不属于B的元素为元素的集合成为A与B的差 (集)
如果只是去重的化,完全可以使用golang map实现。比如下面的例子就可以实现去重。
和我们预料的一样,必须出错 !
golang-set是我在github找到的一个库,其实也没得选.... go get 安装go库包时候因为参数不对,总是失败....
下面是go set的使用实例.
上面那段go代码运行的结果:
set集合本来就没啥说的....