Go语言程序:在哈希集合中搜索项目


在本文中,我们将编写Go语言程序来在哈希集合中搜索项目。哈希映射是哈希集合的一部分。在这里,我们使用Go语言的map(使用map字面量构建)构建一个哈希映射作为键值对的集合。我们将使用两个示例来执行此程序。

语法

func range(variable)

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

使用Exists关键字

在此方法中,我们将使用exists来检查特定项目是否存在于映射中。在这里,我们将使用哈希映射中的索引检查key4是否存在于映射中。

算法

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

  • 步骤2 - 创建一个main函数,并在该函数中使用map字面量创建一个哈希映射,其中键的类型为字符串,值的类型为整数。

  • 步骤3 - 为映射中的每个键赋值。

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

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

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

示例

以下示例演示了使用exists关键字在哈希集合中搜索项目的Go语言程序

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标志

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

算法

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

  • 步骤2 - 创建一个main函数,在这个函数中创建一个与上一个示例类似的哈希映射,并为键赋值。

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

  • 步骤4 - 创建一个名为found的标志,并将其初始值赋值为false。

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

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

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

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

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

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

示例

以下示例说明了使用found标志在哈希集合中搜索项目的Go语言程序

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

使用格式化标识符

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

算法

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

  • 步骤2 - 创建一个main函数,在其中创建一个map,键的类型为字符串,值的类型为整数。

  • 步骤3 - 将键设置为映射中的一个键,以搜索其是否存在于映射中。

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

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

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

  • 步骤7 - 使用格式化标识符将键及其值打印到控制台。

示例

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

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("Found %s with value %d\n", key, value)
   } else {
      fmt.Printf("%s not found\n", key)
   }
}

输出

Found pen with value 10

结论

我们使用三个不同的示例执行了在哈希集合中搜索项目的程序。在第一个示例中,我们使用exists关键字在哈希映射中搜索项目;在第二个示例中,我们使用found标志执行程序;在第三个示例中,我们使用格式化标识符在映射中搜索键。两个示例都给出了预期的输出。

更新于:2023年4月3日

浏览量:207

启动您的职业生涯

完成课程后获得认证

开始学习
广告
© . All rights reserved.