Go语言程序:从数组中移除重复元素


在本教程中,我们将编写一个 Go 语言程序,用于从数组中移除重复元素。移除重复条目指的是去除多次出现的相同值。在本教程中,我们将使用整数数组和字符串数组作为示例。

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

以下代码演示了如何使用用户定义函数从整数数组中移除重复值。

算法

步骤 1 − 首先,我们需要导入 fmt 包。

步骤 2 − 现在,创建一个名为 removeDuplicate() 的函数,该函数接受一个数组作为参数,并在移除所有重复条目后返回一个数组。

步骤 3 − 此函数使用 for 循环迭代数组。

步骤 4 − 在这里,我们创建了一个键为整数、值为布尔值的映射,默认情况下,map_var 存储的值为 false。

步骤 5 − 在数组的每次迭代中,我们检查 map_var 的值,如果它是 false,则我们需要获取该值并将其追加到上面创建的新数组中。

步骤 6 − 重复此过程,直到检查完所有数组值,然后返回刚刚形成的新数组。

步骤 7 − 现在,我们需要启动主函数。

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

步骤 9 − 现在,通过将上面创建的数组作为参数传递给它,来调用 removeDuplicate 函数。

步骤 10 − 将获得的结果存储在一个名为 result 的数组中,并在屏幕上打印数组。

示例

使用外部函数从数组中移除重复值的 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]

方法 2:不使用映射从数组中移除重复元素

现在让我们看看另一个示例,说明如何不使用映射从数组中移除重复条目。

算法

步骤 1 − 导入 fmt 包,该包允许我们在屏幕上打印任何内容。

步骤 2 − 调用 main() 函数。

步骤 3 − 初始化并在整数数组中存储元素,并在屏幕上打印它。

步骤 4 − 使用 for 循环迭代数组,以检查当前元素是否等于下一个元素。

步骤 5 − 如果两个元素相等,则使用 for 循环移除重复元素,并通过执行 size-- 将数组的大小减 1。

步骤 6 − 迭代完整个数组后,使用 fmt.Println() 函数在屏幕上打印获得的新数组的元素。

示例

Go 语言程序:从数组中移除重复元素。

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

结论

我们已经成功编译并执行了一个 Go 语言程序,用于从数组中移除重复元素,并附带示例。

更新于: 2023年1月6日

375 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告