hi-server/pkg/tool/setProcessing.go
2025-10-10 07:13:36 -07:00

46 lines
847 B
Go

package tool
func SliceIntersectInt64(slice1, slice2 []int64) []int64 {
m := make(map[int64]int)
nn := make([]int64, 0)
for _, v := range slice1 {
m[v]++
}
for _, v := range slice2 {
times := m[v]
if times == 1 {
nn = append(nn, v)
}
}
return nn
}
// SliceDifferenceInt64 returns the difference of two slices
func SliceDifferenceInt64(slice1, slice2 []int64) []int64 {
m := make(map[int64]int)
nn := make([]int64, 0)
inter := SliceIntersectInt64(slice1, slice2)
for _, v := range inter {
m[v]++
}
for _, value := range slice1 {
times := m[value]
if times == 0 {
nn = append(nn, value)
}
}
return nn
}
// SliceIsExistInt64 checks if a value exists in a slice
func SliceIsExistInt64(slice []int64, value int64) bool {
for _, item := range slice {
if item == value {
return true
}
}
return false
}