Golang程序 将哈希集合转换为数组
在Go编程语言中,哈希集合包含一个哈希图,它以键:值对的形式保存数值。在这里,在这个特殊的程序中,我们将把map转换成数组,数组的大小是固定的,可以通过索引进行访问。我们将使用两个例子来执行这个程序。在第一个例子中,我们将使用一个索引变量来添加数组中的值,在第二个例子中,我们将使用一个append方法来添加数组中的值。
语法
func make ([] type, size, capacity)
Go语言中的make函数是用来创建数组/映射的,它接受要创建的变量类型、其大小和容量作为参数。
func append(slice, element_1, element_2…, element_N) []T
append函数用于向一个数组片断添加值。它需要一些参数。第一个参数是我们希望添加的数组,后面是要添加的值。然后,该函数返回包含所有值的数组的最终片断。
算法
- 创建一个包main,并在程序中声明fmt(格式包),其中main产生可执行代码,fmt帮助格式化输入和输出。
-
使用map literal创建一个hashmap,其键和值都是字符串类型。
-
在这一步,使用make函数(Golang中的一个内置函数)创建一个与hashhmap的长度相似的数组。
-
创建一个I变量,并将其初始化为0,然后在hashmap上运行一个循环,并在每次迭代时将hashmap上的值分配给数组索引。
-
在每个迭代中增加第1个变量,在循环结束后,在控制台打印数组。
-
打印语句是通过fmt包中的Println()函数执行的,其中ln表示新行。
例1
在这个例子中,我们将使用map literal创建一个hashmap,其中的键和值都是字符串。然后创建一个空的数组,在这个数组中,将使用一个索引变量添加hashmap中的值,然后使用fmt包将数组打印在控制台。
package main
import "fmt"
//Main function to execute the program
func main() {
// create a hash collection
hashmap := map[string]string{
"item1": "value1",
"item2": "value2",
"item3": "value3",
}
// create an array to add the values from map
array := make([]string, len(hashmap))
// iterate over the keys of the hash collection and store the corresponding values in the array
i := 0
for _, value := range hashmap {
array[i] = value
i++
}
// print the array on the terminal
fmt.Println("The hash collection conversion into array is shown as:")
fmt.Println(array)
}
输出
The hash collection conversion into array is shown as:
[value1 value2 value3]
例2
在这个例子中,我们像上一个方法一样创建一个hashmap,并创建一个字符串类型的数组来保存map的值,然后迭代map并使用append方法在数组中添加值,这是Golang的一个内置方法。
package main
import "fmt"
//Main function to execute the program
func main() {
// create a hash collection
hashmap := map[string]string{
"item1": "value1",
"item2": "value2",
"item3": "value3",
}
// create an empty array in which values will be added from hash collection
array := []string{}
// iterate over the keys of the hash collection and append the corresponding values to the array
for key := range hashmap {
value := hashmap[key]
array = append(array, value)
}
// print the resulting array
fmt.Println("The conversion of the hash collection into array is shown like:")
fmt.Println(array)
}
输出
The conversion of the hash collection into array is shown like:
[value1 value2 value3]
总结
我们用两个例子执行了将哈希集合转换为数组的程序。在这两个例子中,我们都创建了空数组来保存map的值,但是在第一个例子中我们使用了i变量和索引来添加值,在第二个例子中我们使用了append方法来添加数组中的值。这两个例子都返回了类似的输出。