dsa-go/hash_set/main.go
2024-09-15 15:00:16 +03:00

51 lines
782 B
Go

package main
import (
"fmt"
"go-dsa/hash_set/v2/hash_set"
)
type Person struct {
Name string
Age int
}
// Hash returns the has of a person, it conforms to the hash_set.Hasher interface
func (p Person) Hash() string {
return fmt.Sprintf("%s-%d", p.Name, p.Age)
}
func main() {
mySet := hash_set.NewSet[Person, string]()
// Add
mySet.Add(Person{
Name: "Batman",
Age: 28,
})
mySet.Add(Person{
Name: "Robin",
Age: 16,
})
mySet.Add(Person{
Name: "Batman",
Age: 28,
})
// Print
fmt.Printf("%s\n", mySet.String())
// Contains
result := mySet.Contains(Person{
Name: "Batman",
Age: 28,
})
fmt.Printf("Set contains batman %v\n", result)
// Deletion
mySet.Delete(Person{
Name: "Batman",
Age: 28,
})
fmt.Printf("%s\n", mySet.String())
}