Golang程序 检查两个数组是否相等

检查两个数组是否相等的Golang程序

在本教程中,我们将看到写一个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步 – 如果结果是,同样的,增加count变量并中断循环。

第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语言程序,以检查两个数组是否相等,并附有实例。