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()方法。两种方法都能很好地完成给定的任务。

更新于:2022年12月20日

1K+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告