一.交集
1.两个切片的交集
采用map实现取两个切片的交集,其中如果map[key]访问成功,即有key这个键,ok为true,否则ok为false。,以string类型为例:
//a 切片, b 切片
func intersect(a []string, b []string) []string {
//初始化一个切片
inter := make([]uint, 0)
/初始化一个map[string]bool : string为a切片val
mp := make(map[string]bool)
for _, value := range a { //循环a切片
if _, ok := mp[value ]; !ok { //判断mp切片是否存在,不存在则设置key-value
mp[value] = true
}
}
for _, val := range b { //循环b切片
if _, ok := mp[val]; ok { //判断mp中是否存在b切片的值,如果存在,则append切片数据到inter中
inter = append(inter, val)
}
}
return inter
}
调试:
a := []string{"1", "2", "3", "4", "5", "1", "66", "6"}
b := []string{"6", "7", "", "4