Golang 从数组中删除重复元素

Golang 从数组中删除重复元素

Golang 中的数组Go 编程语言与其它编程语言非常相似。在程序中,有时我们需要存储一组相同类型的数据,例如学生成绩单列表。这种类型的集合使用数组在程序中进行存储。数组是一系列固定长度的顺序,用于在内存中存储同类元素。由于它们的固定长度,数组不像 Go 语言中的切片一样受欢迎。

在数组中,您可以存储零个或更多个元素。通过使用带有零基位置的 [] 索引操作符对数组的元素进行索引,这意味着第一个元素的索引是 array[0],最后一个元素的索引是 array[len(array)-1]。

为了从数组中删除重复元素,我们将 int 类型的项目映射到布尔类型数据,并将其设置为第一个元素的 true,然后将其附加到另一个数组中,以获得已删除重复元素的数组。

输入: [7,3,6,1,8,1,1,3,4,5,12]
输出: [7,6,4,8,5,12]
存在多次的元素,已删除重复元素

让我们看看 Golang 程序,并理解其代码:

import "fmt"
Go

fmt 包实现了类似于 C 的 printf 和 scanf 的格式化 I / O 函数。

func unique(arr []int) []int {
Go

这是我们定义的函数定义,其参数为输入数组 “arr”,返回类型为 “[ ]int” 类型的数组,用于删除重复的元素。

Golang 从数组中删除重复元素

occurred := map[int]bool{}
result:=[]int{}
Go

在这里,我们创建了一个 map 变量 occurred,该变量将每个元素的 int 数据类型映射到 boolean 数据类型。我们创建了一个数组 ‘result’,它将存储给定项的唯一元素,并将其返回给主功能。

 for e:= range arr {
     if occurred[arr[e]] != true {
     occurred[arr[e]] = true
         result = append(result, arr[e])
     }
  }
return result
Go

我们通过 for 循环迭代数组并检查映射变量 occurred [arr [(循环变量)]] 是 true 还是 false。最开始时,每个索引的映射变量都不为 true。因此,当首次遇到元素时,我们将其更改为 true,并将其附加到数组 result 中。下一次找到重复元素时,将检查条件是否为true occurred [arr[e]] ,是因为之前遇到了,因此不会执行该块并且重复元素不会被附加到结果数组中。最后,我们返回数组。

func main() {
    array1 := []int{1, 5, 3, 4, 1, 6, 6, 6, 8, 7, 13, 5}
    fmt.Println(array1)
    unique_items := unique(array1)
    fmt.Println(unique_items)
}
Go

在主函数中,我们使用值初始化 array1,然后打印初始数组并调用函数 unique 以执行上述函数,并返回一个数组,我们将其作为 ‘unique_items’ 打印出来。

// Golang程序,从数组中移除重复元素
package main
 
import "fmt"
 
func unique(arr []int) []int {
    occurred := map[int]bool{}
    result := []int{}
    for e := range arr {
     
        // 检查是否已将映射变量设置为true
        if occurred[arr[e]] != true {
            occurred[arr[e]] = true
             
            // 添加到结果切片。
            result = append(result, arr[e])
        }
    }
 
    return result
}
 
func main() {
    array1 := []int{1, 5, 3, 4, 1, 6, 6, 6, 8, 7, 13, 5}
    fmt.Println(array1)
    unique_items := unique(array1)
    fmt.Println(unique_items)
} 
Go

输出:

[1 5 3 4 1 6 6 6 8 7 13 5]
[1 5 3 4 6 8 7 13]
Go

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册