Golang程序从数组中删除重复元素

从数组中删除重复元素的Golang程序

在本教程中,我们将编写一个go语言程序,从一个数组中删除重复的元素。我们所说的删除重复的条目,是指我们希望删除一个重复多次的值。在本教程中,我们将使用整数数组以及字符串数组的例子。

方法1:使用外部函数从数组中删除重复的值

下面的代码说明了我们如何使用一个用户定义的函数从一个整数数组中删除重复的值。

算法

第1步 – 首先,我们需要导入fmt包。

第2步 – 现在,制作一个名为removeDuplicate()的函数,接受一个数组作为参数,并在删除所有重复的条目后返回一个数组。

第3步 循环来迭代数组。

第4步 – 在这里我们创建了一个地图,它的键是整数,值是布尔值,默认情况下,map_var存储的值是假的。

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

第6步 – 重复这个过程,直到检查完所有的数组值,然后返回刚刚形成的新数组。

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

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

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

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

示例

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]

方法2:在不使用地图的情况下从数组中删除重复的元素

现在让我们看看另一个例子,如何在不使用地图的情况下从一个数组中删除重复的条目。

算法

第1步 – 导入fmt包,使我们能够在屏幕上打印任何东西。

第2步 – 调用main()函数。

第3步 – 初始化并将元素存储在一个整数数组中,并将其打印在屏幕上。

第4步 – 使用for循环遍历数组,检查当前元素是否等于下一个元素。

第5步 – 如果两个元素都相等,那么就用for循环删除重复的元素,并通过size–来减少数组的大小1。

第6步 – 一旦对整个数组进行迭代,使用fmt.Println()函数在屏幕上打印得到的新数组元素。

示例

删除数组中重复元素的GoLang程序。

package main
import "fmt"
func main() {
   arr := []int{1, 2, 2, 4, 4, 5, 7, 5}
   fmt.Println("The unsorted array entered is:", arr)
   size := len(arr)
   for i := 0; i < size; i++ {
      for j := i + 1; j < size; j++ {
         if arr[i] == arr[j] {
            for k := j; k < size-1; k++ {
               arr[k] = arr[k+1]
            }
            size--
            j--
         }
      }
   }
   fmt.Println("The elements of array obtained after removing the duplicate values is:")
   for i := 0; i < size; i++ {
      fmt.Println(arr[i])
   }
}

输出

The unsorted array entered is: [1 2 2 4 4 5 7 5]
The elements of array obtained after removing the duplicate values is:
1
2
4
5
7

结论

我们已经成功地编译并执行了一个golang程序,从一个数组中删除重复的元素,并附有实例。