在Go语言数组并集的开发实践中,经常会遇到需要合并两个数组并去除重复元素的场景。无论是数据去重、集合运算还是业务逻辑处理,掌握Go数组操作中的并集计算都是一项基础而重要的技能。
本文将手把手教你如何用 Go 语言实现两个数组的并集,并通过清晰的代码示例和详细解释,帮助你快速上手。即使你是编程小白,也能轻松理解!

数组的并集(Union)是指将两个数组中的所有元素合并成一个新数组,且新数组中不包含重复元素。例如:
在 Go 语言中,没有内置的 Set(集合)类型,但我们可以通过 map 来模拟集合行为。因为 map 的 key 是唯一的,天然具备去重特性,非常适合用来实现并集。
下面是一个完整的 Go 程序,演示如何计算两个整型数组的并集:
package mainimport "fmt"// union 计算两个 int 数组的并集func union(arr1, arr2 []int) []int { // 使用 map[int]bool 模拟集合 set := make(map[int]bool) // 将 arr1 的所有元素加入 set for _, v := range arr1 { set[v] = true } // 将 arr2 的所有元素加入 set(自动去重) for _, v := range arr2 { set[v] = true } // 将 map 的 key 转换为 slice result := make([]int, 0, len(set)) for k := range set { result = append(result, k) } return result}func main() { a := []int{1, 2, 3, 4} b := []int{3, 4, 5, 6} result := union(a, b) fmt.Println("数组 a:", a) fmt.Println("数组 b:", b) fmt.Println("并集结果:", result)}union(arr1, arr2 []int) []int 接收两个整型切片,返回它们的并集。make(map[int]bool) 创建一个空 map,用于存储唯一元素。true(值本身不重要,关键是 key 唯一)。💡 注意:由于 map 遍历顺序是随机的,最终结果的元素顺序可能与原数组不同。如果需要保持顺序,可以在遍历时记录插入顺序。
如果你希望这个函数能处理字符串、浮点数等其他可比较类型,可以使用 Go 1.18+ 的泛型功能:
func union[T comparable](arr1, arr2 []T) []T { set := make(map[T]bool) for _, v := range arr1 { set[v] = true } for _, v := range arr2 { set[v] = true } result := make([]T, 0, len(set)) for k := range set { result = append(result, k) } return result}通过本教程,你已经学会了如何在 Go 语言中实现数组的并集计算。这项技能不仅适用于 Go语言入门 阶段的学习,也是日常开发中处理数据集合的常用手段。掌握好 Go算法教程 中的基础操作,将为你后续学习更复杂的算法打下坚实基础。
动手试试吧!修改示例代码,尝试对字符串数组或自定义结构体(需可比较)进行并集操作,加深理解。
本文由主机测评网于2025-12-16发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025128372.html