Go 語言程式:從雜湊集合獲取雜湊元素作為排序陣列


在 Go 語言中,我們可以使用迭代、sort 包以及切片函式從雜湊集合獲取雜湊元素作為排序陣列。

雜湊集合包含一個雜湊對映,用於以鍵值對的形式儲存專案。雜湊對映使用雜湊函式實現。

語法

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 中,使用對映字面量建立雜湊對映,其鍵型別為字串,值型別為整數。

  • 步驟 4 - 然後,使用 make 作為內建函式建立鍵切片,類似於雜湊對映的長度。

  • 步驟 5 - 迭代雜湊對映並將它的鍵追加到切片中。

  • 步驟 6 - 然後,使用 sort 包中的 Strings 函式對鍵切片進行排序。

  • 步驟 7 - 在控制檯上列印排序後的切片。

  • 步驟 8 - 列印語句使用 fmt 包中的 Println 函式執行,其中 ln 表示換行。

示例 1

在此示例中,我們將建立一個鍵型別為字串,值型別為整數的雜湊對映。然後,將建立與雜湊對映長度相似的鍵切片。迭代雜湊對映並將雜湊對映的鍵新增到鍵切片中。

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

在此示例中,將使用對映字面量建立雜湊對映。使用 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 函式。所有示例都返回排序後的陣列。

更新於: 2023年5月3日

261 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告