Go Tutorials

Go Programs

How to Iterate Over Entries (Key-Value Pairs) in a Map in Go


How to Iterate Over Entries (Key-Value Pairs) in a Map in Go ?

Answer

To iterate over entries (key-value pairs) in a map in Go, you can use a range-based for loop. This allows you to access each key-value pair in the map.



✐ Examples

1 Iterating Over Entries Using Range-Based For Loop

We can iterate over entries in a map in Go using a range-based for loop, which provides a convenient syntax for iterating over all key-value pairs in the map.

For example,

  1. We start by declaring and initializing a map named myMap with some key-value pairs. In this example, the map has string keys and integer values.
  2. We use a range-based for loop to iterate over the map. The loop extracts both the key and value from each key-value pair in the map.
  3. We print each key and value to the console using the fmt.Println function to verify that we are iterating over all entries.

Go Program

package main

import "fmt"

func main() {
    // Declare and initialize a map
    myMap := map[string]int{
        "one": 1,
        "two": 2,
        "three": 3,
    }

    // Iterate over entries using range-based for loop
    for key, value := range myMap {
        fmt.Println("Key:", key, "Value:", value)
    }
}

Output

Key: one Value: 1
Key: two Value: 2
Key: three Value: 3

2 Iterating Over Keys and Values Separately

We can iterate over keys and values separately in a map in Go using two range-based for loops, which provides a way to work with keys and values independently of each other.

For example,

  1. We start by declaring and initializing a map named myMap with some key-value pairs. In this example, the map has string keys and integer values.
  2. We declare slices named keys and values to store the keys and values from the map separately.
  3. We use a range-based for loop to iterate over the map and append each key to the keys slice and each value to the values slice.
  4. We use two range-based for loops to iterate over the keys and values slices and print each key and value to the console using the fmt.Println function to verify that we have stored all keys and values separately.

Go Program

package main

import "fmt"

func main() {
    // Declare and initialize a map
    myMap := map[string]int{
        "one": 1,
        "two": 2,
        "three": 3,
    }

    // Declare slices to store the keys and values
    var keys []string
    var values []int

    // Store keys and values separately
    for key, value := range myMap {
        keys = append(keys, key)
        values = append(values, value)
    }

    // Iterate over the keys slice
    for _, key := range keys {
        fmt.Println("Key:", key)
    }

    // Iterate over the values slice
    for _, value := range values {
        fmt.Println("Value:", value)
    }
}

Output

Key: one
Key: two
Key: three
Value: 1
Value: 2
Value: 3

3 Storing and Iterating Over Entries Separately

We can store entries in a separate slice and then iterate over the slice in Go, which provides a way to work with key-value pairs independently of the map.

For example,

  1. We start by declaring and initializing a map named myMap with some key-value pairs. In this example, the map has string keys and integer values.
  2. We declare a slice named entries to store the key-value pairs from the map.
  3. We use a range-based for loop to iterate over the map and append each key-value pair to the entries slice as a struct containing both the key and value.
  4. We use another range-based for loop to iterate over the entries slice and print each key and value to the console using the fmt.Println function to verify that we have stored all entries separately.

Go Program

package main

import "fmt"

// Define a struct to store key-value pairs
type entry struct {
    key   string
    value int
}

func main() {
    // Declare and initialize a map
    myMap := map[string]int{
        "one": 1,
        "two": 2,
        "three": 3,
    }

    // Declare a slice to store the entries
    var entries []entry

    // Store entries in the slice
    for key, value := range myMap {
        entries = append(entries, entry{key, value})
    }

    // Iterate over the entries slice
    for _, e := range entries {
        fmt.Println("Key:", e.key, "Value:", e.value)
    }
}

Output

Key: one Value: 1
Key: two Value: 2
Key: three Value: 3

Summary

In this tutorial, we learned How to Iterate Over Entries (Key-Value Pairs) in 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 ?