Golang程序移除数组中重复内容

移除数组中重复内容的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步 – 在这里我们创建了一个映射,它的键是字符串,值是布尔值,默认情况下,映射存储的值是假的。

第5步 – 在数组的每一次迭代中,我们都要检查map的值,如果它是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存储的值是假的。

第5步 – 在数组的每一次迭代中,我们都要检查map_var的值,如果它是false,那么我们就必须把这个值追加到上面创建的新数组中。

第6步 – 重复这个过程,直到所有的数组值都被检查出来,并返回这样形成的新数组。

第7步 – 现在,我们需要启动主函数。

第8步 – 初始化一个整数数组arr,向其存储数值,并在屏幕上打印该数组。

第9步 – 现在调用removeDuplicate函数,将上面创建的数组作为参数传给它。

第10步 – 将得到的结果存储在一个名为result的数组中,并在屏幕上打印该数组。

示例

Golang程序使用append函数从一个整数数组中移除重复的部分。

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