Go语言程序迭代哈希集合并仅打印值


在 Go 语言中,我们可以使用哈希映射和键函数来迭代哈希集合。哈希映射被认为是哈希集合的一种。在哈希映射中,数据以键值对的形式存储,如下所示。在本程序中,我们将使用三种方法来迭代哈希映射并打印其值。

语法

func make ([] type, size, capacity)

Go 语言中的 make 函数用于创建数组/映射,它接受要创建的变量类型、大小和容量作为参数。

func append(slice, element_1, element_2…, element_N) []T

append 函数用于向数组切片添加值。它接受多个参数。第一个参数是要添加值的数组,后跟要添加的值。然后,该函数返回包含所有值的最终数组切片。

func range(variable)

range 函数用于迭代任何数据类型。要使用它,我们首先必须编写 range 关键字,后跟要迭代的数据类型,结果循环将迭代到变量的最后一个元素。

在哈希映射上使用迭代

在这种方法中,我们将使用映射字面量创建哈希映射,使用 for 循环迭代哈希映射,并在每次迭代中打印值。

算法

  • 步骤 1 - 创建一个包 main 并声明 fmt(格式化包)包在程序中,其中 main 生成可执行代码,而 fmt 帮助格式化输入和输出。

  • 步骤 2 - 创建一个 main 函数,并在该函数中使用映射字面量创建一个映射,其键为字符串类型,值为 int 类型。

  • 步骤 3 - 在映射中创建三个键值对,键为 val1、val2、val3,值为 10、20 和 30。

  • 步骤 4 - 在此步骤中,迭代映射上的循环并在控制台上打印值。

  • 步骤 5 - 打印语句使用 fmt 包中的 fmt.Println() 函数执行,其中 ln 表示换行符。

示例

以下示例显示了 Go 语言程序,该程序使用在哈希映射上迭代的方法迭代哈希集合并仅打印值。

package main

import "fmt"

func main() {
	
   hashmap := map[string]int{
      "val1": 10,        
      "val2": 20,
      "val3": 30,
   }
   fmt.Println("The hashmap is iterated as follows:")
   for _, value := range hashmap {  
      fmt.Println(value) 
   }
}

The hashmap is iterated as follows:
10
20
30

使用键的值

在这种方法中,将创建一个哈希映射,并创建一个名为 values 的新切片,其中将从哈希映射中追加键的值,并将迭代该切片以在控制台上打印值。

算法

  • 步骤 1 - 创建一个包 main 并声明 fmt(格式化包)包在程序中,其中 main 生成可执行代码,而 fmt 帮助格式化输入和输出。

  • 步骤 2 - 创建一个与我们在第一种情况下使用映射字面量创建的类似的哈希映射。

  • 步骤 3 - 在此步骤中,使用 make 函数(Go 语言中的内置函数)创建名为 values 的切片,并使其类似于哈希映射的长度。

  • 步骤 4 - 然后,迭代哈希映射并将哈希映射的值追加到新的切片 values 中。

  • 步骤 5 - 然后,迭代追加了值的切片并在每次迭代中打印每个值。

  • 步骤 6 - 打印语句使用 fmt 包中的 fmt.Println() 函数执行,其中 ln 表示换行符。

示例

以下示例说明了 Go 语言程序,该程序使用键的值迭代哈希集合并仅打印值。

package main

import "fmt"

func main() {
	
   hashmap := map[string]int{
      "val1": 10,
      "val2": 20,
      "val3": 30,
   }	
   values := make([]int, 0, len(hashmap))
   for _, value := range hashmap {
      values = append(values, value)
   }	
   fmt.Println("The hashmap is iterated as follows:")
   for _, value := range values {
      fmt.Println(value)
   }
}

输出

The hashmap is iterated as follows:
10
20
30

使用键

在本例中,我们将创建一个哈希映射,就像我们在前两个示例中创建的那样,但这里的区别在于我们将创建一个名为 keys 的切片,其中将添加哈希映射键,然后迭代此切片以使用索引打印值。

算法

  • 步骤 1 - 创建一个包 main 并声明 fmt(格式化包)包在程序中,其中 main 生成可执行代码,而 fmt 帮助格式化输入和输出。

  • 步骤 2 - 创建一个哈希映射并在其中添加键值对,方法与上述示例中相同。

  • 步骤 3 - 使用 make 函数创建名为 keys 的切片,其长度类似于哈希映射。

  • 步骤 4 - 迭代哈希映射以将其键添加到上面创建的 keys 切片中。

  • 步骤 5 - 在此步骤中,使用 sort 包中的 Strings 函数对键进行排序。

  • 步骤 6 - 由于键未排序,因此迭代该切片并使用哈希映射上的索引打印键的值。

  • 步骤 7 - 使用 fmt 包中的 fmt.Println() 函数在控制台上打印输出,其中 ln 指的是换行符。

示例

以下示例演示了 Go 语言程序,该程序使用键迭代哈希集合并仅打印值。

package main

import (
   "fmt"
   "sort"
)

func main() {
	
   hashmap := map[string]int{
      "val1": 10,
      "val2": 20,
      "val3": 30,
   }

   keys := make([]string, 0, len(hashmap))
   for key := range hashmap {
      keys = append(keys, key)
   }
	
   sort.Strings(keys)

   fmt.Println("The hashmap is iterated as follows:")
   for _, key := range keys {
      fmt.Println(hashmap[key])
   }
}

输出

The hashmap is iterated as follows:
10
20
30

结论

我们使用三个示例执行了遍历哈希集合的程序。在第一个示例中,我们创建了一个哈希映射并对其进行迭代以打印键的值。在第二个示例中,我们创建了一个 values 切片,在第三个示例中,我们创建了一个 keys 切片以打印值。

更新于: 2023年4月3日

274 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.