Swift程序查找数组公共元素
本文将教你如何编写一个Swift程序来查找数组中的公共元素。因此,我们将使用以下方法 −
使用filter方法
使用集合
但在介绍方法之前,我们先通过一个例子来了解一下公共元素。假设我们有两个数组:
Arr1 = [2, 4, 6, 89, 78] Arr2 = [56, 88, 32, 4, 99, 89]
因此,这两个数组的公共元素是[4, 89]。因为它们同时存在于Arr1和Arr2中。
方法1:使用filter(_:)方法
为了查找两个数组之间的公共元素,我们使用一个名为filter(_:)的预定义函数。在这个函数中,我们将返回一个新数组,其中包含给定序列中满足给定条件的所有元素。
语法
以下是语法:
func filter(_isInput:(Self.Element) throws->Bool)rethrows->[Self.Element]
这里的Input是一个闭包,它将给定序列中的一个项目作为其参数,并返回一个布尔值,表示是否从给定序列中删除给定项目。
算法
步骤1 - 创建两个相同类型的数组。
步骤2 - 使用filter()和contains()方法查找这两个数组之间的公共元素,并将结果赋值给一个新的变量。
var commonArray = sequence1.filter{sequence2.contains($0)} Or var commonArray = sequence1.filter{sequence2.contains}
步骤3 - 打印输出
示例
在下面的示例中,我们使用filter()方法查找两个数组之间的公共元素。
import Foundation import Glibc // Creating two arrays of integer type var sequence1 : [Int] = [2, 4, 6, 7, 45, 67, 9, 90] var sequence2 : [Int] = [21, 44, 346, 7, 45, 89, 9, 90, 23] // Finding the common elements using filter() method var commonArray = sequence1.filter{sequence2.contains($0)} print("Array 1:", sequence1) print("Array 2:", sequence2) print("Common Elements between both arrays:", commonArray)
输出
Array 1: [2, 4, 6, 7, 45, 67, 9, 90] Array 2: [21, 44, 346, 7, 45, 89, 9, 90, 23] Common Elements between both arrays: [7, 45, 9, 90]
在上面的代码中,我们创建了两个整数类型的数组。现在,我们使用filter()和contains()方法查找它们之间的公共元素,并将结果存储到一个新数组中。因此,我们将filter方法应用于第一个数组,并在filter()方法内部,我们在第二个数组上应用contains()函数,以检查第一个数组的元素是否从索引0($0)到结束存在于第二个数组中。
方法2:使用集合
我们还可以使用集合的intersection(_:)方法查找两个数组之间的公共元素。此函数用于查找两个序列之间的公共元素。此方法通常用于集合,因此要将此方法用于数组,我们首先将给定的数组转换为集合,然后将结果转换回数组。
语法
以下是语法:
func intersection(_other:Set)->Set
这里的other是另一个集合。
算法
步骤1 - 创建两个相同类型的数组。
步骤2 - 使用intersection()方法查找这两个数组之间的公共元素。因此,我们将两个数组都转换为集合,然后将结果转换回数组。
var commonArray = Array(Set(sequence1).intersection(Set(sequence2)))
步骤3 - 如果条件为真,则打印数组为空。
示例
在下面的示例中,我们使用Set intersection()方法查找两个数组之间的公共元素。
import Foundation import Glibc // Creating two arrays of integer type var sequence1 : [Int] = [4, 32, 6, 32, 2, 45] var sequence2 : [Int] = [21, 44, 6, 2, 45, 89, 4] // Finding the common elements using intersection() method var commonArray = Array(Set(sequence1).intersection(Set(sequence2))) print("Array 1:", sequence1) print("Array 2:", sequence2) print("Common Elements between both arrays:", commonArray)
输出
Array 1: [4, 32, 6, 32, 2, 45] Array 2: [21, 44, 6, 2, 45, 89, 4] Common Elements between both arrays: [6, 45, 2, 4]
在上面的代码中,我们创建了两个整数类型的数组。现在,我们使用intersection()方法查找它们之间的公共元素。因此,我们使用Set()方法将两个数组都转换为集合,然后在两个集合上应用intersection()方法,并使用Array()将结果转换回数组。
结论
因此,要查找两个数组之间的公共元素,我们可以根据需要使用filter()或intersection()方法。两种方法都能很好地完成给定的任务。