Open In App

Comparing Maps in Golang

Improve
Improve
Like Article
Like
Save
Share
Report

In Go language, a map is a powerful, ingenious, and versatile data structure. Golang Maps is a collection of unordered pairs of key-value. It is widely used because it provides fast lookups and values that can retrieve, update, or delete with the help of keys. 
In Go language, you are allowed to compare two maps with each other using DeepEqual() function provided by the reflect package. This function returns true if both the maps satisfy the following conditions:

  • Both maps are nil or non-nil.
  • Both maps have the same length.
  • Both maps are the same map object or their corresponding keys map to deeply equal values.

Otherwise, this function returns false.

Syntax: 

reflect.DeepEqual(a, b)

Here, a and b are maps, and this function checks whether a and b are deeply equal or not, then return boolean type result. 

Example: 

Go




// Go program to illustrate
// how to compare two maps
package main
 
import (
    "fmt"
    "reflect"
)
 
func main() {
 
    map_1 := map[int]string{
 
        200: "Anita",
        201: "Neha",
        203: "Suman",
        204: "Robin",
        205: "Rohit",
    }
    map_2 := map[int]string{
 
        200: "Anita",
        201: "Neha",
        203: "Suman",
        204: "Robin",
        205: "Rohit",
        206: "Sumit",
    }
 
    map_3 := map[int]string{
 
        200: "Anita",
        201: "Neha",
        203: "Suman",
        204: "Robin",
        205: "Rohit",
    }
    map_4 := map[string]int{
 
        "Anita": 200,
        "Neha"201,
        "Suman": 203,
        "Robin": 204,
        "Rohit": 205,
    }
 
    // Comparing maps
    // Using DeepEqual() function
    res1 := reflect.DeepEqual(map_1, map_2)
    res2 := reflect.DeepEqual(map_1, map_3)
    res3 := reflect.DeepEqual(map_1, map_4)
    res4 := reflect.DeepEqual(map_2, map_3)
    res5 := reflect.DeepEqual(map_3, map_4)
    res6 := reflect.DeepEqual(map_4, map_4)
    res7 := reflect.DeepEqual(map_2, map_4)
 
    // Displaying result
    fmt.Println("Is Map 1 is equal to Map 2: ", res1)
    fmt.Println("Is Map 1 is equal to Map 3: ", res2)
    fmt.Println("Is Map 1 is equal to Map 4: ", res3)
    fmt.Println("Is Map 2 is equal to Map 3: ", res4)
    fmt.Println("Is Map 3 is equal to Map 4: ", res5)
    fmt.Println("Is Map 4 is equal to Map 4: ", res6)
    fmt.Println("Is Map 2 is equal to Map 4: ", res7)
 
}


Output:

Is Map 1 is equal to Map 2:  false
Is Map 1 is equal to Map 3:  true
Is Map 1 is equal to Map 4:  false
Is Map 2 is equal to Map 3:  false
Is Map 3 is equal to Map 4:  false
Is Map 4 is equal to Map 4:  true
Is Map 2 is equal to Map 4:  false





Last Updated : 06 Nov, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads