實際生產中,對不同數組取交集、並集、差集等場景很常用,下面來說下兩個數組取差集
直接上代碼:
//兩個集合取並集 package main import "fmt" //思想: //運用map,統計nums1中值出現的次數-map[值]次數 //遍歷nums2中的值,查看值是否在map中的出現 func intersect(nums1 []string, nums2 []string) []string { m := make(map[string]int) for _,v := range nums1 { m[v]++ } fmt.Println(m) for _,v := range nums2 { times, _ := m[v] //v是nums2中的值,m[v]是map中的值.m[v]==times fmt.Printf("1................@@@@@@@@@@@@@@..v=%d,times=%d\n",v,times) if times == 0{ nums1 = append(nums1, v) } } return nums1 } func main() { a1 := []string{"3","4","1"} a2 := []string{"2","1","3"} fmt.Println(intersect(a1,a2)) }
運行結果如下:
即獲得到兩個slice的並集。