使用Golang在哈希集合中搜索项的程序

使用Golang在哈希集合中搜索项的程序

在本文中,我们将编写Golang程序,在哈希集合中搜索项。 哈希映射是哈希集合的一部分。 在这里,我们正在使用Golang的 map 操作构建一个哈希映射,将其构建为一组使用 map 文字构建的键值对。 我们将使用两个示例来执行此程序。

语法

func range(variable)

range 函数用于迭代任何数据类型。 为了使用它,我们首先必须写出 range 关键字,后跟要迭代的数据类型,因此循环将迭代到变量的最后一个元素。

使用关键字 Exists

在此方法中,我们将使用 exists(存在)关键字检查特定项是否存在于映射中。 在这里,我们将使用哈希映射索引检查 key4,以确定是否存在其任何值。

算法

  • 步骤 1 − 创建一个包 main,并在程序中声明 fmt(格式化包)包,在其中,主程序生成可执行代码,fmt 帮助格式化输入和输出。

  • 步骤 2 − 创建一个 main 函数,并且在该函数中使用 map 文字创建一个哈希映射,其中键的类型为 string,值的类型为 int。

  • 步骤 3 − 为映射中的每个键分配值。

  • 步骤 4 − 然后,使用 exists 关键字在哈希映射中搜索任何特定项,这里我们正在搜索 key4。

  • 步骤 5 − 如果键存在于映射中,则使用 fmt 包的 Println() 函数将其值打印在控制台上。

  • 步骤 6 − 如果映射中不存在键,则会类似步骤 5 一样打印 “该项不存在于哈希集合中。”

示例

以下示例演示使用 exists 关键字在哈希集合中搜索项的 Golang 程序

package main

import "fmt"

func main() {
   hashmap := map[string]int{  
      "key1": 10,
      "key2": 20,
      "key3": 30,
      "key4": 40,  
   }    
   value, exists := hashmap["key4"]  
   if exists {
      fmt.Println("The value of 'key4' is:", value)
   } else {
      fmt.Println("The item does not exist in the hash collection.")
   }
}

输出

The value of 'key4' is: 40

使用 Found 标志

在此示例中,我们将创建与上一个示例中相似的哈希映射,但是在这里,我们将使用一个标志,并将其默认值设置为 false。

算法

  • 步骤 1 − 在程序中创建一个 package main,并声明 fmt (格式化包)package,因为 main 用来生成可执行代码,fmt 用来格式化输入和输出。

  • 步骤 2 − 在此函数中创建一个哈希映射(hashmap),类似于上一个示例,并为键分配值。

  • 步骤 3 − 在此步骤中,创建一个变量 searchkey,并将要搜索的特定键存储在其中。在本例中,我们使用 key4。

  • 步骤 4 − 创建一个名为 found 的标记,并将其初始值设为 false。

  • 步骤 5 − 创建另一个名为 value 的类型为 int 的变量,以存储键的值。

  • 步骤 6 − 然后,在哈希映射上运行一个循环,并在每次迭代中检查搜索键和键是否相等。

  • 步骤 7 − 如果它们相等,则将 found 设置为 true,并将键的原始值设置为 value 变量。

  • 步骤 8 − 如果找到了键,则中断循环。

  • 步骤 9 − 在循环终止后,检查 found 的值。如果 found 为 true,则使用 fmt 包中的 Println 函数将键的值打印到控制台上。

  • 步骤 10 − 如果 found=false,则打印一个语句,说明哈希集合中未找到该键。

示例

以下示例说明了使用找到标志(found flag)在哈希集合中搜索项的 Golang 程序。

package main

import "fmt"

func main() {
   hashmap := map[string]int{ 
      "key1": 10,    
      "key2": 20,
      "key3": 30,
      "key4": 40,
   }
   searchKey := "key4"
   found := false            
   var value int                
   for key, val := range hashmap {
      if key == searchKey {
         found = true
         value = val
         break    
      }
   }

   if found {
      fmt.Println("The value of", searchKey, "is", value)
   } else {
      fmt.Println(searchKey, "not found in the hash collection.")
   }
}

输出

The value of key4 is 40

使用格式化标识符

在这种方法中,我们将编写一个 Golang 程序,使用格式化标识符在哈希集合中搜索项。

算法

  • 步骤 1 − 在程序中创建一个 package main,并声明 fmt(格式化包)package,因为 main 用来生成可执行代码,fmt 用来格式化输入和输出。

  • 步骤 2 − 在此函数中创建一个哈希映射,其中键为 string 类型,值为 int 类型。

  • 步骤 3 − 将键设置为要搜索的映射中的键以确定其是否存在于映射中。

  • 步骤 4 − 使用索引检查映射中的键,并使用 found 标志。

  • 步骤 5 − 然后,使用 if-else 条件语句来检查 found 是否为 true,这意味着键元素存在于映射中。

  • 步骤 6 − 但是,如果 found 是 false,则映射中不存在该键。

  • 步骤 7 − 使用格式化标识符在控制台上打印键及其值。

示例

以下示例演示了如何开发使用格式化标识符在哈希集合中搜索项的 Golang 程序。

package main

import "fmt"

func main() {

   values := map[string]int{
      "pen":    10,
      "pencil": 20,
      "scale":  30,
   }

   key := "pen"
   value, found := values[key]

   if found {
      fmt.Printf("找到 %s ,其对应的值为 %d\n", key, value)
   } else {
      fmt.Printf("%s 未找到\n", key)
   }
}

输出

找到 pen ,其对应的值为 10

结论

我们使用三个不同的示例执行了在哈希集合中搜索项目的程序。在第一个示例中,我们使用exists关键字在哈希图中搜索项目,在第二个示例中,我们使用找到标志来执行操作,第三个示例中,我们使用格式标识符在地图中搜索键。这两个示例都产生了所需的输出。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程