Go語言程式:檢查兩個陣列是否相等


在本教程中,我們將學習編寫一個 Go 語言程式來檢查兩個陣列是否相等。

使用等號運算子檢查兩個陣列是否相等

以下程式碼演示瞭如何使用等號運算子檢查兩個陣列是否相等。

演算法

步驟 1 − 首先,我們需要匯入 fmt 包,以便在螢幕上列印任何內容。

步驟 2 − 然後我們呼叫 main() 函式。

步驟 3 − 然後我們初始化三個整數型別的陣列 arr1、arr2 和 arr3,並將值儲存到它們中。

步驟 4 − 使用 fmt.Println() 函式在螢幕上列印這些陣列。

步驟 5 − 我們使用 if 條件同時比較任意兩個陣列,並檢查它們是否相同。

步驟 6 − 如果選擇的兩個陣列相同,則需要列印這兩個陣列相同的訊息;否則,列印給定陣列不相等。

步驟 7 − 透過逐一比較所有三個陣列來檢查。

示例

package main
import "fmt"
func main() {
   arr1 := [4]int{1, 2, 3, 4}
   fmt.Println("The first array Arr1 is:", arr1)
   arr2 := [4]int{5, 6, 7, 8}
   fmt.Println("The second array Arr2 is:", arr2)
   arr3 := [4]int{1, 2, 3, 4}
   fmt.Println("The third array Arr3 is:", arr3)
   fmt.Println()
   if arr1 == arr2 {
      fmt.Println("Arr1 and Arr2 have the similar elements")
   } else {
      fmt.Println("Arr1 and Arr2 do not have the similar elements")
   }
   if arr1 == arr3 {
      fmt.Println("Arr1 and Arr3 have the similar elements")
   } else {
      fmt.Println("Arr1 and Arr3 do not have the similar elements")
   }
   if arr2 != arr3 {
      fmt.Println("Arr2 and Arr3 do not have the similar elements")
   } else {
      fmt.Println("Arr2 and Arr3 have the similar elements")
   }
}

輸出

The first array Arr1 is: [1 2 3 4]
The second array Arr2 is: [5 6 7 8]
The third array Arr3 is: [1 2 3 4]
Arr1 and Arr2 do not have the similar elements
Arr1 and Arr3 have the similar elements
Arr2 and Arr3 do not have the similar elements

使用 if 條件檢查兩個陣列是否相等

上述程式有一個缺點:如果我們提供兩個具有相同元素但順序不同的陣列,它仍然將它們視為不相等。我們將在本程式中嘗試克服這個缺點。

演算法

步驟 1 − 匯入 fmt 包,以便在螢幕上列印任何內容。

步驟 2 − 呼叫 main() 函式。這是我們程式的起點。

步驟 3 − 初始化兩個名為 arr1 和 arr2 的整數型別陣列。

步驟 4 − 將值儲存到這兩個陣列中,並在螢幕上列印它們。

步驟 5 − 使用兩個 for 迴圈迭代這兩個陣列,並使用 if 條件比較兩個陣列當前元素的值。

步驟 6 − 如果值相同,則遞增計數變數並中斷迴圈。

步驟 7 − 重複此過程,直到檢查完整個陣列。

步驟 8 − 然後,使用另一個 if 條件,我們將陣列的長度與計數變數進行比較。

步驟 9 − 如果長度相同,則表示這兩個陣列相同,我們需要在螢幕上列印此訊息。否則,列印給定的兩個陣列不相同。

示例

package main
import "fmt"
func main() {
   arr1 := [4]int{1, 2, 3, 4}
   fmt.Println("The first array Arr1 is:", arr1)
   arr2 := [4]int{2, 3, 1, 4}
   fmt.Println("The second array Arr2 is:", arr2)
   fmt.Println()
   var count int = 0
   for i := 0; i < len(arr1); i++ {
      for j := 0; j < len(arr2); j++ {
         if arr1[i] == arr2[j] {
            count++
            break
         }
      }
   }
   if (count == len(arr1)) && (count == len(arr2)) {
      fmt.Println("The above two arrays given are same")
   } else {
      fmt.Println("The above two arrays are different")
   }
}

輸出

The first array Arr1 is: [1 2 3 4]
The second array Arr2 is: [2 3 1 4]

The above two arrays given are same

使用外部函式檢查兩個陣列是否相等

現在讓我們看看如何使用使用者定義的函式檢查兩個陣列是否相等。

示例

package main
import "fmt"

// function to check if given arrays are equal or not
func equalArray(a []int, b []int) bool {
   if len(a) != len(b) {
      return false
   }
   for i, v := range a {
      if v != b[i] {
         return false
      }
   }
   return true
}
func main() {
   arr1 := []int{1, 2, 3, 4}
   fmt.Println("The first array Arr1 is:", arr1)
   arr2 := []int{1, 2, 3, 4}
   fmt.Println("The second array Arr2 is:", arr2)
   result := equalArray(arr1, arr2)
   fmt.Println()
   if result == true {
      fmt.Println("The above two arrays are equal")
   } else {
      fmt.Println("The above two arrays are not equal")
   }
}

輸出

The first array Arr1 is: [1 2 3 4]
The second array Arr2 is: [1 2 3 4]

The above two arrays are equal

結論

我們已經成功編譯並執行了一個 Go 語言程式,用於檢查兩個陣列是否相等,並附帶示例。

更新於:2022年12月28日

2K+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告