本篇文章主要介绍golang里集合的实现思路。
什么是集合?
集合通常是由一组无序的, 不能重复的元素构成
功能
- 添加元素
 - 删除元素
 - 获取集合的元素数量
 - 检查集合是否包含某元素
 - 清空集合
 - 判断集合是否为空
 - 集合转数组
 - 复制
 
接口设计如下:
1  | type Set interface {  | 
具体实现
线程不安全
我们使用golang的map来实现集合
1  | import (  | 
线程安全的集合
在非线程安全集合的基础上,通过读写锁实现线程安全。
1  | import "sync"  | 
初始化函数
1  | func ThreadSafe(items ...interface{}) Set {  | 
单元测试
1  | import (  | 
- 本文作者: Hongker
 - 本文链接: https://hongker.github.io/2020/08/04/algorithm-set/
 - 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
 
