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 切片以列印值。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP