import "github.com/zyedidia/generic/hashset"
Package hashset provides an implementation of a hashset.
Example
package main
import (
"fmt"
g "github.com/zyedidia/generic"
"github.com/zyedidia/generic/hashset"
)
func main() {
set := hashset.New[string](3, g.Equals[string], g.HashString)
set.Put("foo")
set.Put("bar")
set.Put("baz")
fmt.Println(set.Has("foo"))
fmt.Println(set.Has("quux"))
set.Remove("foo")
fmt.Println(set.Has("foo"))
fmt.Println(set.Has("bar"))
set.Clear()
fmt.Println(set.Has("foo"))
fmt.Println(set.Has("bar"))
}
true
false
false
true
false
false
- type Set
- func New[K any](capacity uint64, equals g.EqualsFn[K], hash g.HashFn[K]) *Set[K]
- func Of[K comparable](capacity uint64, equals g.EqualsFn[K], hash g.HashFn[K], vals ...K) *Set[K]
- func (s *Set[K]) Clear()
- func (s *Set[K]) Copy() *Set[K]
- func (s *Set[K]) Each(fn func(key K))
- func (s *Set[K]) Has(val K) bool
- func (s *Set[K]) Put(val K)
- func (s *Set[K]) Remove(val K)
- func (s *Set[K]) Size() int
type Set
Set implements a hashset, using the hashmap as the underlying storage.
type Set[K any] struct {
// contains filtered or unexported fields
}
func New
func New[K any](capacity uint64, equals g.EqualsFn[K], hash g.HashFn[K]) *Set[K]
New returns an empty hashset.
func Of
func Of[K comparable](capacity uint64, equals g.EqualsFn[K], hash g.HashFn[K], vals ...K) *Set[K]
Of returns a new hashset initialized with the given 'vals'
func (*Set[K]) Clear
func (s *Set[K]) Clear()
Clear removes all elements from the set.
func (*Set[K]) Copy
func (s *Set[K]) Copy() *Set[K]
Copy returns a copy of this set.
func (*Set[K]) Each
func (s *Set[K]) Each(fn func(key K))
Each calls 'fn' on every item in the set in no particular order.
func (*Set[K]) Has
func (s *Set[K]) Has(val K) bool
Has returns true only if 'val' is in the set.
func (*Set[K]) Put
func (s *Set[K]) Put(val K)
Put adds 'val' to the set.
func (*Set[K]) Remove
func (s *Set[K]) Remove(val K)
Remove removes 'val' from the set.
func (*Set[K]) Size
func (s *Set[K]) Size() int
Size returns the number of elements in the set.
Generated by gomarkdoc