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,

  1. We start by declaring and initializing two maps named map1 and map2 with some key-value pairs. In this example, the maps have string keys and integer values.
  2. We check if the lengths of map1 and map2 are equal. If their lengths are not equal, the maps are not equal.
  3. If their lengths are equal, we iterate over the key-value pairs of map1 and check if each key-value pair exists in map2 and matches the corresponding value.
  4. 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,

  1. We start by declaring and initializing two maps named map1 and map2 with some key-value pairs. In this example, the maps have string keys and integer values, and they have different sizes.
  2. We check if the lengths of map1 and map2 are equal. If their lengths are not equal, the maps are not equal.
  3. If their lengths are equal, we iterate over the key-value pairs of map1 and check if each key-value pair exists in map2 and matches the corresponding value.
  4. 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,

  1. We start by declaring and initializing two maps named map1 and map2 with some key-value pairs. In this example, the maps have string keys and integer values.
  2. We define a helper function named areMapsEqual that takes two maps as parameters and returns a boolean value indicating whether the maps are equal.
  3. Inside the helper function, we compare the lengths of the maps. If their lengths are not equal, we return false.
  4. If their lengths are equal, we iterate over the key-value pairs of map1 and check if each key-value pair exists in map2 and matches the corresponding value, returning true if they do.
  5. We call the helper function with map1 and map2 as arguments and 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 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

  1. How to create an Empty Map in Go ?
  2. How to create a Map with Initial Key-Value Pairs in Go ?
  3. How to Print a Map in Go ?
  4. How to Add a Key-Value Pair to a Map in Go ?
  5. How to Set a Default Value for a Key in a Map in Go ?
  6. How to Update the Value for a Key in a Map in Go ?
  7. How to Check if a Map is Empty in Go ?
  8. How to Check if a Key Exists in a Map in Go ?
  9. How to Check if a Value Exists in a Map in Go ?
  10. How to Get the Value Associated with a Key in a Map in Go ?
  11. How to Remove a Key-Value Pair from a Map in Go ?
  12. How to Remove Key-Value Pairs from a Map Based on Values in Go ?
  13. How to Clear All Key-Value Pairs from a Map in Go ?
  14. How to Iterate Over Keys in a Map in Go ?
  15. How to Iterate Over Values in a Map in Go ?
  16. How to Iterate Over Entries (Key-Value Pairs) in a Map in Go ?
  17. How to Get the Size (Number of Key-Value Pairs) of a Map in Go ?
  18. How to Convert a Map to an Array of Keys in Go ?
  19. How to Convert a Map to an Array of Values in Go ?
  20. How to Convert a Map to an Array of Key-Value Pairs in Go ?
  21. How to Merge Two Maps in Go ?
  22. How to Copy a Map in Go ?
  23. How to Check if Two Maps are Equal in Go ?
  24. How to Sort a Map by Keys in Go ?
  25. How to Sort a Map by Values in Go ?
  26. How to Filter a Map Based on Keys in Go ?
  27. How to Filter a Map Based on Values in Go ?
  28. How to Reduce Values in a Map to a Single Value in Go ?
  29. How to Convert an Array of Key-Value Pairs to a Map in Go ?
  30. How to Convert a Map to a JSON String in Go ?
  31. How to Convert a JSON String to a Map in Go ?
  32. How to Swap Keys and Values in a Map in Go ?
  33. How to Create a Map of Maps in Go ?
  34. How to Iterate Over a Map of Maps in Go ?