Golang 从哈希集合获取哈希元素的排序数组

Golang 从哈希集合获取哈希元素的排序数组

在Golang中,我们可以使用迭代,排序包以及切片函数从哈希集合中获取哈希元素的排序数组。

哈希集合包含一个哈希映射,用于以键值对的形式存储项。哈希映射是使用哈希函数实现的。

语法

func make ([] type, size, capacity)

在Go语言中,make函数用于创建数组/映射,它接受要创建的变量的类型、大小和容量作为参数。

func append(slice, element_1, element_2…, element_N) []T

append函数用于将值添加到一个数组切片中。它接受多个参数。第一个参数是我们希望添加值的数组,后面是要添加的值。函数返回包含所有值的最终的数组切片。

funcStrings(src []string) []string

strings函数定义在sort包中。这个函数接受我们希望进行排序的字符串格式的数组,并通过对该数组进行排序返回结果。

sort.Slice()

这个函数是 sort 包的一部分。 用于对整数切片进行排序。 它接受两个参数:要排序的切片和一个返回布尔值的函数。

func range(variable)

range 函数用于迭代任何数据类型。要使用此函数,我们首先要写上 range 关键字,后面跟随我们要迭代的数据类型,循环会迭代到变量的最后一个元素为止。

步骤

  • 步骤 1 - 此程序导入两个包 fmt、main 和 sort 包,其中 fmt 用于输入和输出的格式化,main 用于生成可执行代码。

  • 步骤 2 - 创建一个 main 函数。

  • 步骤 3 - 在 main 函数中,使用 map 字面量创建一个 hashmap,键的类型为 string,值的类型为 int。

  • 步骤 4 - 然后,使用内置函数 make 创建一个与 hashmap 长度相似的 keys 切片。

  • 步骤 5 - 迭代 hashmap,并将其键添加到切片中。

  • 步骤 6 - 然后,使用 sort 包中的 Strings 函数对 keys 切片进行排序。

  • 步骤 7 - 在控制台上打印排序后的切片。

  • 步骤 8 - 使用 fmt 包中的 Println 函数执行打印语句,ln 代表换行。

示例1

在这个示例中,我们将创建一个键的类型为 string,值的类型为 int 的 hashmap。然后,创建一个与 hashmap 长度相似的 keys 切片。迭代 hashmap,并将 hashmap 的键添加到 keys 切片中。

package main

import (
   "fmt"
   "sort"
)

func main() {
   hashmap := map[string]int{
      "noodles": 110,
      "momos":   80,
      "pizza":   190,
      "burger":  50,
   }

   keys := make([]string, 0, len(hashmap))
   for k := range hashmap {
      keys = append(keys, k)
   }
   sort.Strings(keys)
   fmt.Println("The sorted array is given as:")
   fmt.Println(keys)
}

输出

The sorted array is given as:
[burger momos noodles pizza]

示例2

在这个示例中,将使用 map 字面量创建一个 hashmap。使用 sort 包中的 Strings 函数对切片中的键进行排序。最后,在终端打印出排序后的数组。

package main

import (
   "fmt"
   "sort"
)

func main() {
   hashmap := map[string]int{
      "noodles": 110,
      "momos":   60,
      "pizza":   250,
      "pasta":   80,
   }

   keys := make([]string, len(hashmap))
   i := 0
   for k := range hashmap {
      keys[i] = k
      i++
   }

   sort.Strings(keys)  //sort the array

   fmt.Println("The sorted array is given as:")
   fmt.Println(keys)
}

输出

The sorted array is given as:
[momos noodles pasta pizza]

示例3

在这个示例中,我们将创建一个哈希映射,并使用sort包中的Slice函数来对新的切片中的键进行排序。排序后的数组将打印在控制台上。

package main

import (
   "fmt"
   "sort"
)

func main() {
   hashmap := map[string]int{
      "noodles": 110,
      "pasta":   60,
      "pizza":   290,
      "momos":   40,
   }

   keys := make([]string, 0, len(hashmap))
   for k := range hashmap {
      keys = append(keys, k)
   }

   sort.Slice(keys, func(i, j int) bool {
      return keys[i] < keys[j]
   })

   fmt.Println("The sorted array is given as:")
   fmt.Println(keys)
}

输出

The sorted array is given as:
[momos noodles pasta pizza]

结论

我们编写并执行了以排序数组形式获取哈希元素的程序。在第一个示例中,我们使用了sort包中的Strings函数;在第二个示例中,我们在循环中使用了一个索引变量和类似的Strings函数;在第三个示例中,我们使用了sort包中的Slice函数。所有示例都返回了排序后的数组。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程