基於雜湊集合的值獲取鍵的 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

結論

我們使用兩種方法執行了從雜湊集合中基於值獲取鍵的程式。在第一個示例中,我們使用了外部函式和迭代來獲取所需的鍵,在第二個示例中,我們使用了反向對映技術來獲取所需的輸出。

更新於: 2023年3月27日

447 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.