使用Golang程序迭代哈希集合并仅打印值
在golang中,我们可以使用哈希映射和键函数来迭代哈希集合。哈希映射被认为是哈希集合之一。在哈希映射中,数据以键值对的形式存储,如下所示。在此程序中,我们将使用三种方法迭代哈希映射并打印其值。
语法
func make([]type, size, capacity)
go语言中的make函数用于创建一个数组/映射,它接受要创建的变量的类型、大小和容量作为参数。
func append(slice, element_1, element_2…, element_N) []T
append函数用于向数组切片添加值。它需要多个参数。第一个参数是我们要添加值的数组,然后是要添加的值。函数返回包含所有值的最终数组切片。
func range(variable)
range函数用于迭代任何数据类型。为了使用它,我们首先必须写出range关键字,后面跟着我们想要迭代的数据类型,结果循环将迭代到变量的最后一个元素。
使用哈希映射进行迭代
在这种方法中,我们将使用map literal创建一个哈希映射,使用for循环迭代哈希映射,并在每次迭代时打印值。
算法
- 步骤1 - 在程序中创建一个包main,并声明fmt(格式包)包,其中main生成可执行代码,fmt在格式化输入和输出方面有帮助。
-
步骤2 - 创建一个main函数,并在该函数中使用map literal创建一个键为字符串类型的值为整数类型的映射。
-
步骤3 - 在该映射中创建三个键值对,键为val1、val2、val3,值分别为10、20和30。
-
步骤4 - 在此步骤中,迭代循环遍历该映射,并将值从控制台打印出来。
-
步骤5 - 使用fmt包中的fmt.Println()函数执行打印语句,其中ln表示新行。
示例
以下示例显示了使用哈希映射上的迭代的Golang程序,并仅打印值
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(格式包)包。其中,fmt帮助格式化输入和输出。
-
步骤 2 − 创建一个hashmap,并像第一个例子中使用map文本一样创建它。
-
步骤 3 − 在这一步中,使用内置函数make来创建名为slice的值,将其创建成与hashmap相同的长度。
-
步骤 4 − 遍历hashmap并在新的slice value中添加hashmap的值。
-
步骤 5 − 然后,遍历已附加值的slice并在每次迭代中打印每个值。
-
步骤 6 − 使用fmt包中的fmt.Println()函数执行打印语句,其中ln代表换行符。
示例
以下示例演示了使用key的值来迭代哈希表集合,并仅打印值的Golang程序。
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
使用Key值
在此示例中,我们将创建一个哈希表,其中哈希表键将被添加到名为keys的slice中,然后对该slice进行迭代以使用索引打印值。
算法
- 步骤 1 − 在程序中创建主要的包(main包),并在其中声明fmt(格式包)包。其中,fmt帮助格式化输入和输出。
-
步骤 2 − 创建一个哈希表,添加键值对,就像在上面的示例中所做的那样。
-
步骤 3 − 使用make函数创建名为keys的slice,其长度类似于哈希表。
-
步骤 4 − 遍历哈希表以将其键添加到上面创建的keys slice中。
-
步骤 5 − 在此步骤中,使用sort包中的Strings函数对键进行排序。
-
步骤 6 − 由于键未排序,因此遍历该slice并在哈希表上使用索引打印键值。
-
步骤 7 − 使用fmt包中的fmt.Println()函数将输出打印到控制台,其中ln表示换行符。
示例
以下示例演示使用key值来迭代哈希表集合并仅打印值的Golang程序。
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
结论
我们执行了三个示例来遍历哈希集合的程序。在第一个示例中,我们创建了一个哈希映射表,并通过迭代打印了键的值。在第二个示例中,我们创建了一个值片段,而在第三个示例中,我们创建了一个键片段,以打印值。