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 语言程序,用于从数组中移除重复值。我们在这里使用了两个程序,第一个程序从字符串数组中移除值,第二个程序从整数数组中移除值。这两个示例都使用用户定义函数来实现结果。

更新于: 2023年1月6日

4K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告