Go语言程序:从数组中移除重复元素
本文将编写一个 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** - 在这里,我们创建了一个映射,其键为字符串,值为布尔值,默认情况下,映射存储的值为假。
**步骤 5** - 在数组的每次迭代中,我们检查映射的值,如果它是假,则我们需要获取该值并将其追加到上面创建的新数组中,然后翻转布尔值。
**步骤 6** - 现在,我们需要启动 main() 函数。
**步骤 7** - 初始化一个整数数组 arr,向其中存储值,并在屏幕上打印该数组。
**步骤 8** - 现在,通过将上面创建的数组作为参数传递给它,来调用 removeDuplicate 函数。
**步骤 9** - 将获得的结果存储在一个名为 result 的数组中,并在屏幕上打印该数组。
示例
使用外部函数从字符串数组中移除重复元素的 Go 语言程序
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]
方法:使用 Append 函数从整数数组中移除重复元素
以下代码说明了如何使用用户定义函数从整数数组中移除重复值
语法
func append(slice, element_1, element_2…, element_N) []T
append 函数用于向数组切片添加值。它接受多个参数。第一个参数是要添加值的数组,后面跟着要添加的值。然后,该函数返回包含所有值的最终数组切片。
算法
**步骤 1** - 首先,我们需要导入 fmt 包。
**步骤 2** - 现在,创建一个名为 removeDuplicate() 的函数,该函数接受数组作为参数,并在移除所有重复项后返回数组。
**步骤 3** - 此函数使用 for 循环遍历数组。
**步骤 4** - 在这里,我们创建了一个映射,其键为整数,值为布尔值,默认情况下,映射 map_var 存储的值为假。
**步骤 5** - 在数组的每次迭代中,我们检查 map_var 的值,如果它是假,则我们需要获取该值并将其追加到上面创建的新数组中
**步骤 6** - 重复此过程,直到检查完所有数组值,然后返回这样形成的新数组。
**步骤 7** - 现在,我们需要启动 main 函数。
**步骤 8** - 初始化一个整数数组 arr,向其中存储值,并在屏幕上打印该数组。
**步骤 9** - 现在,通过将上面创建的数组作为参数传递给它,来调用 removeDuplicate 函数。
**步骤 10** - 将获得的结果存储在一个名为 result 的数组中,并在屏幕上打印该数组。
示例
使用 append 函数从整数数组中移除重复元素的 Go 语言程序。
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 语言程序,用于从数组中移除重复值。我们在这里使用了两个程序,第一个程序从字符串数组中移除值,第二个程序从整数数组中移除值。这两个示例都使用用户定义函数来实现结果。