Golang 从数组中删除重复元素
在本教程中,我们将编写一个go语言程序,从数组中移除重复的元素。通过移除重复的条目,我们的意思是要删除多次重复的值。在本教程中,我们将使用整数数组和字符串数组的示例。
方法1:使用外部函数从数组中删除重复的值
以下代码演示了如何使用自定义函数从整数数组中删除重复值。
步骤
第1步 − 首先,我们需要导入fmt包。
第2步 − 现在,创建一个名为removeDuplicate()的函数,它接受一个数组作为参数,并在删除所有重复条目后返回数组。
第3步 − 此函数使用 for 循环遍历数组。
第4步 − 在这里,我们创建了一个map,键为整数,值为布尔值,默认情况下,map_var存储的值为false。
第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–来减小数组的大小。
第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程序,用于从数组中删除重复元素,并附带了示例。