go实现set
package main import (
"fmt"
"sync"
) type object interface{}
type Set struct {
m map[object]bool
sync.RWMutex //线程安全实现,记录下
} //初始化
func New() *Set {
return &Set{
m: map[object]bool{},
}
} func (s *Set) Add(item object) {
s.Lock()
defer s.Unlock()
s.m[item] = true
} func (s *Set) Remove(item object) {
s.Lock()
defer s.Unlock()
delete(s.m, item)
} func (s *Set) Clean() {
s.m = map[object]bool{}
}
func (s *Set) Len() int {
return len(s.m)
} func (s *Set) Contains(item object) bool {
_, ok := s.m[item];
return ok
} func (s *Set) IsEmpty() bool {
fmt.Println(len(s.m))
return len(s.m) > 0
} func main() {
s := New()
fmt.Println(s.IsEmpty())
s.Add("aaa")
fmt.Println(s.IsEmpty())
s.Add("1")
s.Add("2")
s.Add("3")
fmt.Println(s.Contains("3"))
//s.Clean()
for key, _ := range s.m {
fmt.Println("Key:", key)
}
}
随机推荐
- BZOJ2006:[NOI2010]超级钢琴
浅谈\(RMQ\):https://www.cnblogs.com/AKMer/p/10128219.html 题目传送门:https://www.lydsy.com/JudgeOnline/prob ...
- C#编译问题'System.Collections.Generic.IEnumerable' does not contain a definition for 'Where' and no extension method 'Where' accepting a first argument
'System.Collections.Generic.IEnumerable<string>' does not contain a definiti ...
- phpmyadmin数据库密码的设置
用phpMyAdmin修改mysql数据库密码 修改mysql数据库密码方法有很多,这里向大家演示一种比较简单的方法,利用phpMyAdmin修改. 工具/原料 phpMyAdmin软件 my ...
- jsonp实现数据跨域请求
1.我们知道,哪怕跨域js文件中的代码(当然指符合web脚本安全策略的),web页面也是可以无条件执行的. 远程服务器remoteserver.com根目录下有个remote.js文件代码如下: al ...
- Hibernate中注解的开发
转自:https://blog.csdn.net/liujiahan629629/article/details/22335563 在利用注解开发数据库持久层以前,需要学习一个规范JPA(JavaPe ...
- css使图片变成黑白效果
-webkit-filter: grayscale(%); -moz-filter: grayscale(%); -ms-filter: grayscale(%); -o-filter: graysc ...
- Struts result param详细设置
<</span>result type="json"> <</span>param name="root">da ...
- 【机器学习】支持向量机SVM
关于支持向量机SVM,这里也只是简单地作个要点梳理,尤其是要注意的是SVM的SMO优化算法.核函数的选择以及参数调整.在此不作过多阐述,单从应用层面来讲,重点在于如何使用libsvm,但对其原理算法要 ...
- 利用JS函数制作时钟运行程序
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ACM-ICPC2018南京网络赛 AC Challenge(一维状压dp)
AC Challenge 30.04% 1000ms 128536K Dlsj is competing in a contest with n (0 < n \le 20)n(0<n ...