golang 两个数组 获取相交和相差数据
可以通过遍历两个数组来获取相交和相差数据。
获取相交数据的步骤如下:
-
定义一个空的切片用于存储相交数据。
-
遍历第一个数组,检查每个元素是否在第二个数组中存在。
-
如果存在,则将该元素添加到相交数据的切片中。
获取相差数据的步骤如下:
-
定义两个空的切片用于存储第一个数组中独有的元素和第二个数组中独有的元素。
-
遍历第一个数组,检查每个元素是否在第二个数组中存在。
-
如果不存在,则将该元素添加到第一个数组独有的元素的切片中。
-
遍历第二个数组,检查每个元素是否在第一个数组中存在。
-
如果不存在,则将该元素添加到第二个数组独有的元素的切片中。
示例代码如下:
package main
import "fmt"
func main() {
arr1 := []int{1, 2, 3, 4, 5}
arr2 := []int{4, 5, 6, 7, 8}
// 获取相交数据
intersect := []int{}
for _, v1 := range arr1 {
for _, v2 := range arr2 {
if v1 == v2 {
intersect = append(intersect, v1)
break
}
}
}
fmt.Println("相交数据:", intersect)
// 获取相差数据
diff1 := []int{}
diff2 := []int{}
for _, v1 := range arr1 {
exists := false
for _, v2 := range arr2 {
if v1 == v2 {
exists = true
break
}
}
if !exists {
diff1 = append(diff1, v1)
}
}
for _, v2 := range arr2 {
exists := false
for _, v1 := range arr1 {
if v2 == v1 {
exists = true
break
}
}
if !exists {
diff2 = append(diff2, v2)
}
}
fmt.Println("第一个数组独有的元素:", diff1)
fmt.Println("第二个数组独有的元素:", diff2)
}
原文地址: http://www.cveoy.top/t/topic/uhH 著作权归作者所有。请勿转载和采集!