1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-10 07:42:27 +08:00

feat: add SymmetricDifference func for set

This commit is contained in:
dudaodong
2022-04-01 18:02:12 +08:00
parent f5bf5183cc
commit 21dd6ab8aa
2 changed files with 27 additions and 0 deletions

View File

@@ -104,6 +104,24 @@ func (s Set[T]) Intersection(other Set[T]) Set[T] {
return set
}
// SymmetricDifference creates a new set whose element both be contained in set s and other
func (s Set[T]) SymmetricDifference(other Set[T]) Set[T] {
set := NewSet[T]()
s.Iterate(func(value T) {
if !other.Contain(value) {
set.Add(value)
}
})
other.Iterate(func(value T) {
if !s.Contain(value) {
set.Add(value)
}
})
return set
}
// Minus creates an set of whose element in origin set but not in compared set
func (s Set[T]) Minus(comparedSet Set[T]) Set[T] {
set := NewSet[T]()