Go Tutorials

Go Programs

How to Convert an Array of Key-Value Pairs to a Map in Go


How to Convert an Array of Key-Value Pairs to a Map in Go ?

Answer

To convert an array of key-value pairs to a map in Go, you can iterate over the array and insert each key-value pair into the map. This method allows you to create a map from a collection of key-value pairs stored in an array.



✐ Examples

1 Converting a Slice of Pairs to a Map

We can convert a slice of key-value pairs to a map in Go by iterating over the slice and adding each key-value pair to the map.

For example,

  1. We start by declaring and initializing a slice of pairs named pairs with some key-value pairs. In this example, the pairs are represented as structs with two fields: Key and Value.
  2. We declare an empty map named myMap to store the key-value pairs.
  3. We iterate over the slice using a for loop and add each pair to the map.
  4. We print the resulting map to the console using the fmt.Println function to verify the conversion.

Go Program

package main

import "fmt"

// Pair represents a key-value pair
type Pair struct {
    Key   int
    Value int
}

func main() {
    // Declare and initialize a slice of pairs
    pairs := []Pair{
        {1, 10},
        {2, 20},
        {3, 30},
        {4, 40},
        {5, 50},
    }

    // Declare an empty map to store the key-value pairs
    myMap := make(map[int]int)

    // Iterate over the slice and add each pair to the map
    for _, pair := range pairs {
        myMap[pair.Key] = pair.Value
    }

    // Print the resulting map
    fmt.Println("Map from slice of pairs:")
    for key, value := range myMap {
        fmt.Printf("%d: %d\n", key, value)
    }
}

Output

Map from slice of pairs:
1: 10
2: 20
3: 30
4: 40
5: 50

2 Converting a Slice of Tuples to a Map

We can convert a slice of key-value tuples to a map in Go by iterating over the slice and adding each tuple's key-value pair to the map.

For example,

  1. We start by declaring and initializing a slice of tuples named pairs with some key-value pairs. In this example, the tuples are represented as slices with two elements: a key and a value.
  2. We declare an empty map named myMap to store the key-value pairs.
  3. We iterate over the slice using a for loop and add each tuple to the map.
  4. We print the resulting map to the console using the fmt.Println function to verify the conversion.

Go Program

package main

import "fmt"

func main() {
    // Declare and initialize a slice of tuples
    pairs := [][2]int{
        {1, 10},
        {2, 20},
        {3, 30},
        {4, 40},
        {5, 50},
    }

    // Declare an empty map to store the key-value pairs
    myMap := make(map[int]int)

    // Iterate over the slice and add each tuple to the map
    for _, pair := range pairs {
        myMap[pair[0]] = pair[1]
    }

    // Print the resulting map
    fmt.Println("Map from slice of tuples:")
    for key, value := range myMap {
        fmt.Printf("%d: %d\n", key, value)
    }
}

Output

Map from slice of tuples:
1: 10
2: 20
3: 30
4: 40
5: 50

3 Converting a Slice of Structs to a Map

We can convert a slice of structs with key-value fields to a map in Go by iterating over the slice and adding each struct's key-value pair to the map.

For example,

  1. We start by declaring and initializing a slice of structs named pairs with some key-value pairs. Each struct has two fields: Key and Value.
  2. We declare an empty map named myMap to store the key-value pairs.
  3. We iterate over the slice using a for loop and add each struct's key-value pair to the map.
  4. We print the resulting map to the console using the fmt.Println function to verify the conversion.

Go Program

package main

import "fmt"

// Pair represents a key-value pair
type Pair struct {
    Key   int
    Value int
}

func main() {
    // Declare and initialize a slice of structs
    pairs := []Pair{
        {1, 10},
        {2, 20},
        {3, 30},
        {4, 40},
        {5, 50},
    }

    // Declare an empty map to store the key-value pairs
    myMap := make(map[int]int)

    // Iterate over the slice and add each struct's key-value pair to the map
    for _, pair := range pairs {
        myMap[pair.Key] = pair.Value
    }

    // Print the resulting map
    fmt.Println("Map from slice of structs:")
    for key, value := range myMap {
        fmt.Printf("%d: %d\n", key, value)
    }
}

Output

Map from slice of structs:
1: 10
2: 20
3: 30
4: 40
5: 50

Summary

In this tutorial, we learned How to Convert an Array of Key-Value Pairs to a Map 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 ?