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

go programmingserver side programmingprogramming更新于 2025/5/12 16:52:17

在本教程中,我们将学习如何编写一个 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("第一个数组 Arr1 是:", arr1)
    arr2 := [4]int{5, 6, 7, 8}
    fmt.Println("第二个数组 Arr2 是:", arr2)
    arr3 := [4]int{1, 2, 3, 4}
    fmt.Println("第三个数组 Arr3 是:", arr3)
    fmt.Println()
    if arr1 == arr2 {
        fmt.Println("Arr1 和 Arr2 有相似的元素")
    } else {
        fmt.Println("Arr1 和 Arr2 没有相似的元素")
    }
    if arr1 == arr3 {
        fmt.Println("Arr1 和 Arr3 有相似的元素")
    } else {
        fmt.Println("Arr1 和 Arr3 没有相似元素")
    }
    if arr2 != arr3 {
        fmt.Println("Arr2 和 Arr3 没有相似元素")
    } else {
        fmt.Println("Arr2 和 Arr3 有相似元素")
    }
}

输出

第一个数组 Arr1 为:[1 2 3 4]
第二个数组 Arr2 为:[5 6 7 8]
第三个数组 Arr3 为:[1 2 3 4]
Arr1 和 Arr2 没有相似的元素
Arr1 和 Arr3 有相似的元素
Arr2 和 Arr3 没有相似的元素

使用 if 条件检查两个数组是否相等

上面的程序有一个缺点,如果我们提供两个具有相同元素但顺序不同的数组,它仍然将它们视为不相等。我们将尝试在这个程序中克服这个缺点。

算法

步骤 1 - 导入 fmt 包,它允许我们在屏幕上打印任何内容。

步骤 2 - 调用 main() 函数。这是我们程序的起点。

步骤 3 - 初始化两个名为 arr1 和 arr2 的整数数据类型数组。

步骤 4 - 将值存储到这两个数组并将它们打印在屏幕上。

步骤 5 - 使用两个 for 循环遍历两个数组,并使用 if 条件比较两个数组的当前元素的值。

步骤 6- 如果结果为,则增加 count 变量并中断循环。

步骤 7 - 重复此过程,直到检查完整个数组。

步骤 8 - 然后通过使用另一个 if 条件,我们将数组的长度与 count 变量进行比较。

步骤 9 − 如果长度相同,则意味着两个数组相同,我们需要在屏幕上打印此消息。否则,打印给定的两个数组不相同。

示例

package main
import "fmt"
func main() {
    arr1 := [4]int{1, 2, 3, 4}
    fmt.Println("第一个数组 Arr1 为:", arr1)
    arr2 := [4]int{2, 3, 1, 4}
    fmt.Println("第二个数组 Arr2 为:", 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("上述两个数组相同")
    } else {
        fmt.Println("上述两个数组不同")
    }
}

输出

第一个数组 Arr1 为:[1 2 3 4]
第二个数组 Arr2 为:[2 3 1 4]

上面给出的两个数组相同

使用外部函数检查两个数组是否相等

现在让我们看看如何使用用户定义的函数检查两个数组是否相等

示例

package main
import "fmt"

// 函数用于检查给定数组是否相等
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("第一个数组 Arr1 为:", arr1)
    arr2 := []int{1, 2, 3, 4}
    fmt.Println("第二个数组 Arr2 为:", arr2)
    result := equalArray(arr1, arr2)
    fmt.Println()
    if result == true {
        fmt.Println("上面两个数组相等")
    } else {
        fmt.Println("上面两个数组不相等")
    }
}

输出

第一个数组 Arr1 为:[1 2 3 4]
第二个数组 Arr2 为:[1 2 3 4]

上面两个数组相等

结论

我们已经成功编译并执行了一个 go 语言程序来检查两个数组是否相等,并附上示例。


相关文章