(st2 Set[T])
| 152 | } |
| 153 | |
| 154 | func (st *set[T]) SymmetricDifference(st2 Set[T]) Set[T] { |
| 155 | symmetricDifferenceSet := New[T]() |
| 156 | dropSet := New[T]() |
| 157 | for _, item := range st.GetItems() { |
| 158 | if st2.In(item) { |
| 159 | dropSet.Add(item) |
| 160 | } else { |
| 161 | symmetricDifferenceSet.Add(item) |
| 162 | } |
| 163 | } |
| 164 | for _, item := range st2.GetItems() { |
| 165 | if !dropSet.In(item) { |
| 166 | symmetricDifferenceSet.Add(item) |
| 167 | } |
| 168 | } |
| 169 | return symmetricDifferenceSet |
| 170 | } |