如何在两个map中判断那些key是相同的,哪些key是map独有的
时间: 2024-03-12 14:46:46 浏览: 72
判断相邻2个字符是否相同
要判断两个 map 中哪些 key 是相同的,哪些 key 是独有的,可以按照以下步骤进行操作:
1. 遍历其中一个 map 的所有 key,对于每个 key,判断它是否也存在于另一个 map 中。
2. 如果存在于另一个 map 中,则说明这个 key 是相同的;如果不存在于另一个 map 中,则说明这个 key 是独有的。
3. 对于存在于另一个 map 中的 key,还需要判断它们对应的 value 是否相等。
下面是一个示例代码,演示了如何在 Go 语言中实现上述操作:
```
func diffMaps(map1, map2 map[string]int) (commonKeys, map1OnlyKeys, map2OnlyKeys []string) {
// 先找出两个 map 共有的 key
for key1 := range map1 {
if _, ok := map2[key1]; ok {
commonKeys = append(commonKeys, key1)
} else {
map1OnlyKeys = append(map1OnlyKeys, key1)
}
}
// 再找出 map2 独有的 key
for key2 := range map2 {
if _, ok := map1[key2]; !ok {
map2OnlyKeys = append(map2OnlyKeys, key2)
}
}
return commonKeys, map1OnlyKeys, map2OnlyKeys
}
```
这个函数接受两个类型为 `map[string]int` 的参数,分别表示两个 map。函数返回三个 slice,分别表示两个 map 共有的 key、第一个 map 独有的 key 和第二个 map 独有的 key。
阅读全文