Golang 从数组中删除重复项
在本文中,我们将编写一个Go语言程序来从数组中删除重复项。我们将采用两种方法来实现。在第一种方法中,我们将使用字符串数组,而在第二种方法中,我们将使用整数数组。
方法1:使用Make()函数从字符串数组中删除重复项
在这个示例中,我们将编写一个Go语言程序来从字符串数组中删除重复项,使用用户自定义的函数。该函数将接受字符串数组作为参数,并返回删除重复值后的最终数组。
语法
func append(slice, element_1, element_2…, element_N) []T
append函数用于向数组片段添加值。它接受多个参数。第一个参数是我们希望向其添加值的数组,其后跟随要添加的值。该函数然后返回包含所有值的最终数组片段。
func make ([] type, size, capacity)
在Go语言中, make 函数用于创建数组/映射。它接受要创建的变量类型、大小和容量作为参数。
步骤
第1步 - 首先,我们需要导入fmt包。
第2步 - 现在,创建一个名为removeDuplicate()的函数。该函数接受数组作为参数,并返回包含唯一值的结果。
第3步 - 此函数使用for循环遍历数组。
第4步 - 在这里,我们创建了一个映射,其中键为字符串,值为布尔值,默认情况下,映射存储的值为false。
第5步 - 在每次迭代数组时,我们检查映射的值是否为false,如果是,则将该值添加到上面创建的新数组中,并将布尔值取反。
第6步 - 现在,我们需要开始main()函数。
第7步 - 初始化一个名为arr的整数数组,将值存储在其中并将数组打印到屏幕上。
第8步 - 现在,通过将上面创建的数组作为参数调用removeDuplicate函数。
第9步 - 将得到的结果存储在名为result的数组中,并将数组打印到屏幕上。
示例
使用外部函数的Golang程序,从字符串数组中移除重复项。
package main
import "fmt"
// function to remove duplicate values
func removeDuplicates(s []string) []string {
bucket := make(map[string]bool)
var result []string
for _, str := range s {
if _, ok := bucket[str]; !ok {
bucket[str] = true
result = append(result, str)
}
}
return result
}
func main() {
// creating an array of strings
array := []string{"abc", "cde", "efg", "efg", "abc", "cde"}
fmt.Println("The given array of string is:", array)
fmt.Println()
// calling the function
result := removeDuplicates(array)
fmt.Println("The array obtained after removing the duplicate entries is:", result)
}
输出
The given array of string is: [abc cde efg efg abc cde]
The array obtained after removing the duplicate entries is: [abc cde efg]
方法:使用追加函数从整数数组中删除重复项
以下代码示例说明了如何使用用户定义的函数从整数数组中删除重复值
语法
func append(slice, element_1, element_2…, element_N) []T
append函数用于向数组切片添加值。它接受多个参数。第一个参数是我们希望向其中添加值的数组,后面是要添加的值。函数返回包含所有值的最终数组切片。
步骤
步骤1 - 首先,我们需要导入fmt包。
步骤2 - 现在,创建一个名为removeDuplicate()的函数,它接受一个数组作为参数,并返回一个删除所有重复条目的数组。
步骤3 - 此函数使用for循环来遍历数组。
步骤4 - 在这里,我们创建了一个具有整数键和布尔值的映射,默认情况下,map_var存储的值为false。
步骤5 - 在每次从数组中进行迭代时,我们检查map_var的值,如果为false,则将该值添加到上面创建的新数组中。
步骤6 - 重复此过程,直到检查完所有的数组值,并返回所形成的新数组。
步骤7 - 现在,我们需要开始主函数。
步骤8 - 初始化一个名为arr的整数数组,将值存储到其中,并在屏幕上打印数组。
步骤9 - 现在通过将上面创建的数组作为参数调用removeDuplicate函数。
步骤10 - 将所获得的结果存储在一个名为result的数组中,并在屏幕上打印数组。
示例
使用append函数从整数数组中删除重复项的Golang程序。
package main
import "fmt"
// making a function named removeDuplicate()
func removeDuplicate(arr [8]int) []int {
map_var := map[int]bool{}
result := []int{}
for e := range arr {
if map_var[arr[e]] != true {
map_var[arr[e]] = true
result = append(result, arr[e])
}
}
return result
}
func main() {
arr := [8]int{1, 2, 2, 4, 4, 5, 7, 5}
fmt.Println("The unsorted array entered is:", arr)
result := removeDuplicate(arr)
fmt.Println("The array obtained after removing the duplicate values is:", result)
}
输出
The unsorted array entered is: [1 2 2 4 4 5 7 5]
The array obtained after removing the duplicate values is: [1 2 4 5 7]
结论
我们已成功编译和执行了一个Go语言程序,用于从数组中去除重复的值。我们在这里使用了两个程序,第一个程序从字符串数组中删除值,第二个程序从整数数组中删除值。这两个示例都使用了自定义函数来实现结果。