How to Check if Two Maps are Equal in Go - Step by Step Examples
How to Check if Two Maps are Equal in Go ?
Answer
To check if two maps are equal in Go, you need to compare their lengths and iterate over the key-value pairs to ensure they match. This method provides a straightforward way to determine if two maps contain the same elements.
✐ Examples
1 Checking Equality of Two Maps by Iterating Over Key-Value Pairs
We can check if two maps are equal in Go by comparing their lengths and iterating over the key-value pairs to ensure they match.
For example,
- We start by declaring and initializing two maps named
map1
andmap2
with some key-value pairs. In this example, the maps have string keys and integer values. - We check if the lengths of
map1
andmap2
are equal. If their lengths are not equal, the maps are not equal. - If their lengths are equal, we iterate over the key-value pairs of
map1
and check if each key-value pair exists inmap2
and matches the corresponding value. - We print the result to the console using the
fmt.Println
function to indicate whether the maps are equal or not.
Go Program
package main
import "fmt"
func main() {
// Declare and initialize two maps
map1 := map[string]int{"one": 1, "two": 2, "three": 3}
map2 := map[string]int{"one": 1, "two": 2, "three": 3}
// Check if the maps are equal
equal := true
if len(map1) != len(map2) {
equal = false
} else {
for key, value := range map1 {
if val, ok := map2[key]; !ok || val != value {
equal = false
break
}
}
}
if equal {
fmt.Println("Maps are equal")
} else {
fmt.Println("Maps are not equal")
}
}
Output
Maps are equal
2 Checking Equality of Two Maps with Different Sizes
We can also check if two maps with different sizes are equal in Go by comparing their lengths first and then iterating over the key-value pairs to ensure they match.
For example,
- We start by declaring and initializing two maps named
map1
andmap2
with some key-value pairs. In this example, the maps have string keys and integer values, and they have different sizes. - We check if the lengths of
map1
andmap2
are equal. If their lengths are not equal, the maps are not equal. - If their lengths are equal, we iterate over the key-value pairs of
map1
and check if each key-value pair exists inmap2
and matches the corresponding value. - We print the result to the console using the
fmt.Println
function to indicate whether the maps are equal or not.
Go Program
package main
import "fmt"
func main() {
// Declare and initialize two maps
map1 := map[string]int{"one": 1, "two": 2, "three": 3}
map2 := map[string]int{"one": 1, "two": 2}
// Check if the maps are equal
equal := true
if len(map1) != len(map2) {
equal = false
} else {
for key, value := range map1 {
if val, ok := map2[key]; !ok || val != value {
equal = false
break
}
}
}
if equal {
fmt.Println("Maps are equal")
} else {
fmt.Println("Maps are not equal")
}
}
Output
Maps are not equal
3 Checking Equality of Two Maps Using a Helper Function
We can create a helper function to check if two maps are equal in Go, which provides a reusable way to compare maps.
For example,
- We start by declaring and initializing two maps named
map1
andmap2
with some key-value pairs. In this example, the maps have string keys and integer values. - We define a helper function named
areMapsEqual
that takes two maps as parameters and returns a boolean value indicating whether the maps are equal. - Inside the helper function, we compare the lengths of the maps. If their lengths are not equal, we return
false
. - If their lengths are equal, we iterate over the key-value pairs of
map1
and check if each key-value pair exists inmap2
and matches the corresponding value, returningtrue
if they do. - We call the helper function with
map1
andmap2
as arguments and print the result to the console using thefmt.Println
function to indicate whether the maps are equal or not.
Go Program
package main
import "fmt"
func areMapsEqual(map1, map2 map[string]int) bool {
if len(map1) != len(map2) {
return false
}
for key, value := range map1 {
if val, ok := map2[key]; !ok || val != value {
return false
}
}
return true
}
func main() {
// Declare and initialize two maps
map1 := map[string]int{"one": 1, "two": 2, "three": 3}
map2 := map[string]int{"one": 1, "two": 2, "three": 3}
// Check if the maps are equal using the helper function
if areMapsEqual(map1, map2) {
fmt.Println("Maps are equal")
} else {
fmt.Println("Maps are not equal")
}
}
Output
Maps are equal
Summary
In this tutorial, we learned How to Check if Two Maps are Equal in Go language with well detailed examples.
More Go Maps Tutorials
- How to create an Empty Map in Go ?
- How to create a Map with Initial Key-Value Pairs in Go ?
- How to Print a Map in Go ?
- How to Add a Key-Value Pair to a Map in Go ?
- How to Set a Default Value for a Key in a Map in Go ?
- How to Update the Value for a Key in a Map in Go ?
- How to Check if a Map is Empty in Go ?
- How to Check if a Key Exists in a Map in Go ?
- How to Check if a Value Exists in a Map in Go ?
- How to Get the Value Associated with a Key in a Map in Go ?
- How to Remove a Key-Value Pair from a Map in Go ?
- How to Remove Key-Value Pairs from a Map Based on Values in Go ?
- How to Clear All Key-Value Pairs from a Map in Go ?
- How to Iterate Over Keys in a Map in Go ?
- How to Iterate Over Values in a Map in Go ?
- How to Iterate Over Entries (Key-Value Pairs) in a Map in Go ?
- How to Get the Size (Number of Key-Value Pairs) of a Map in Go ?
- How to Convert a Map to an Array of Keys in Go ?
- How to Convert a Map to an Array of Values in Go ?
- How to Convert a Map to an Array of Key-Value Pairs in Go ?
- How to Merge Two Maps in Go ?
- How to Copy a Map in Go ?
- How to Check if Two Maps are Equal in Go ?
- How to Sort a Map by Keys in Go ?
- How to Sort a Map by Values in Go ?
- How to Filter a Map Based on Keys in Go ?
- How to Filter a Map Based on Values in Go ?
- How to Reduce Values in a Map to a Single Value in Go ?
- How to Convert an Array of Key-Value Pairs to a Map in Go ?
- How to Convert a Map to a JSON String in Go ?
- How to Convert a JSON String to a Map in Go ?
- How to Swap Keys and Values in a Map in Go ?
- How to Create a Map of Maps in Go ?
- How to Iterate Over a Map of Maps in Go ?