Go的Set实现

发布时间 2023-12-10 19:08:23作者: _Eternity味道

Go的Set实现

  • 由于Go的内置集合中没有Set的实现,可以用map[type]struct{}
    要求:
    1、元素的唯一性
    2、基本操作:添加、删除、判断是否存在、统计元素数量
    3、可遍历集合
//声明Set
type Set struct {
   //利用map,实现的Set集合
   mapSet map[string]struct{}
}
//新增
func (s *Set) add(val string) {
   s.mapSet[val] = struct{}{}
}
//删除
func (s *Set) delete(val string) {
   delete(s.mapSet, val)
}
//是否存在
func (s *Set) exist(val string) bool{
   if _, ok :=s.mapSet[val]; !ok {
      return false
   }
   return true
}
//计数
func (s *Set) count(val string) int {
   return len(s.mapSet)
}
//遍历:直接for遍历s.mapSet