基於雜湊集合的值獲取鍵的 Golang 程式
在 Golang 中,我們可以使用雜湊圖執行各種操作,例如刪除、更新和儲存雜湊集合中的值。在本文中,我們將透過兩個不同的示例來了解如何從雜湊集合中基於值獲取鍵。在第一個示例中,我們將使用一個外部函式並迭代對映以從值獲取鍵,在第二個示例中,我們將使用反向對映從所需值獲取鍵。
演算法
建立一個名為 main 的包並在程式中宣告 fmt(格式化包),其中 main 生成可執行程式碼,而 fmt 幫助格式化輸入和輸出。
建立一個名為 get_value_from_key 的外部函式,它有兩個輸入:雜湊圖和要獲取其鍵的值。
迭代雜湊圖,並在每次迭代中檢查該值是否等於雜湊圖的 val。
如果為真,則返回其值被檢查的鍵,但如果雜湊圖中不存在該值,則返回空字串。
在 main 函式中,使用對映字面量建立一個雜湊圖,其中鍵的型別為字串,值的型別為整數。
使用兩個引數從 main 呼叫外部函式,並在 key 中獲取返回值。
再次使用雜湊圖中不存在的值呼叫該函式,在這種情況下將返回一個空字串。
使用 fmt.Println() 函式在控制檯上列印鍵,其中 ln 表示換行。
示例 1
在此示例中,我們將建立一個具有兩個引數的外部函式,即雜湊圖和要列印其鍵的值。
package main
import "fmt"
func get_value_from_key(hash map[string]int, value int) string {
for key, val := range hash {
if val == value { //check if the value is equal to the val from hashmap return the key
return key
}
}
return ""
}
func main() {
// Example hash collection
hashmap := map[string]int{
"one": 10,
"two": 20,
"three": 30,
}
// obtain key for value 2
key := get_value_from_key(hashmap, 20)
fmt.Println("The key to corresponding value is:")
fmt.Println(key)
// obtain key for value 4 (not found)
key = get_value_from_key(hashmap, 40)
fmt.Println(key)
}
輸出
The key to corresponding value is: two
示例 2
在此示例中,我們將建立一個對映,在其中我們將以相反的方式將鍵分配給值,然後我們將返回作為輸入給定的值的相應鍵。輸出將是相應值的鍵。讓我們透過程式碼和演算法來探討它。
package main
import "fmt"
func get_key_from_value(hash map[string]int, value int) string {
reverseHash := make(map[int]string)
for key, val := range hash {
reverseHash[val] = key //use map reversal to add the leys to the following values
}
return reverseHash[value] //return the key following to this value
}
func main() {
// Example hash collection
hashmap := map[string]int{
"one": 10,
"two": 20,
"three": 30,
}
// obtain key for value 2
key := get_key_from_value(hashmap, 20)
fmt.Println("The key of the above value is: ")
fmt.Println(key) // Output: two
// obtain key for value 4 (not found)
key = get_key_from_value(hashmap, 40)
fmt.Println(key) // Output:
}
輸出
The key of the above value is: two
結論
我們使用兩種方法執行了從雜湊集合中基於值獲取鍵的程式。在第一個示例中,我們使用了外部函式和迭代來獲取所需的鍵,在第二個示例中,我們使用了反向對映技術來獲取所需的輸出。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP