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)
}
}

随机推荐

  1. SimpliciTI协议地址分配

    1.多个ED节点和AP正确连接后,AP都会给ED分配一个相应的地址.当某个ED出现意外,比如电源问题,和AP断开连接,AP并不将该ED节点的地址消除.当该ED恢复正常,重新申请加入网络时,AP会检测该 ...

  2. java 基础知识学习 内存泄露(memory leak) VS 内存溢出(out of memory)以及内存管理

    内存泄露(memory leak) VS 内存溢出(out of memory) 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory ...

  3. java 发邮件 代码

    /** * java发送带附件的邮件 * 周枫 * 2013.8.10 */ package com.dsideal.Util; import javax.mail.*; import javax.m ...

  4. Redux API之applyMiddleware

    applyMiddleware(...middlewares) 使用包含自定义功能的 middleware 来扩展 Redux 是一种推荐的方式.Middleware 可以让你包装 store 的di ...

  5. Promise API

    Promise API     刚刚接触promise这个东西,网上看了很多博客,大部分是讲怎么用Promise,丝毫没提怎么实现Promise. 我不甘 心,可是真去看JQuery或者Angular ...

  6. .Net锦囊-C#,.Net发送邮件三种方法…

    最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数据发送一封E-mail,因此我也就找来相关资料,写了一个Demo分享给大家,大 ...

  7. web性能并发测试工具(转)

    导读:随着Web 2.0技术的迅速发展,许多公司都开发了一些基于Web的网站服务,通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况,因此,当Web网站遇到访问高峰时,容易发生 ...

  8. HDU 1532 Drainage Ditches (网络流)

    A - Drainage Ditches Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64 ...

  9. ACM-ICPC2018徐州网络赛 Hard to prepare(dp)

    Hard to prepare 28.63% 1000ms 262144K   After Incident, a feast is usually held in Hakurei Shrine. T ...

  10. JS Guid生成

    function numToGuid(uid) { var str = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; var l = uid.to ...