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