Swift 程序查找常见数组元素

swiftserver side programmingprogramming更新于 2025/9/18 10:37:17

本文将教我们如何编写一个 Swift 程序来查找常见数组元素。这里我们使用以下方法 −

  • 使用 filter 方法

  • 使用 sets

但在讨论方法之前,我们先通过一个例子来了解常见元素。假设我们有两个数组 -

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]

这里的 isInput 是一个闭包,它接受给定序列中的一个项作为参数,并返回一个布尔值,表示是否从给定序列中删除该项。

算法

  • 步骤 1 − 创建两个相同类型的数组。

  • 步骤 2 − 使用 filter() 和 contains() 方法查找这两个数组之间的共同元素,并将结果赋值给一个新变量。

var commonArray = sequence1.filter{sequence2.contains($0)}
或者
var commonArray = sequence1.filter{sequence2.contains}
  • 步骤 3 − 打印输出

示例

在下面的示例中,我们查找两个数组使用 filter() 方法。

import Foundation
import Glibc

// 创建两个整数类型的数组
var sequence1 : [Int] = [2, 4, 6, 7, 45, 67, 9, 90]
var sequence2 : [Int] = [21, 44, 346, 7, 45, 89, 9, 90, 23]

// 使用 filter() 方法查找公共元素
var commonArray = sequence1.filter{sequence2.contains($0)}

print("数组 1:", sequence1)
print("数组 2:", sequence2)
print("两个数组之间的公共元素:", commonArray)

输出

数组 1: [2, 4, 6, 7, 45, 67, 9, 90]
数组 2: [21, 44, 346, 7, 45, 89, 9, 90, 23]
两个数组的公共元素:[7, 45, 9, 90]

在上面的代码中,我们创建了两个整数类型的数组。现在我们使用 filter() 和 contains() 方法查找它们之间的公共元素,并将结果存储到一个新数组中。因此,我们将 filter 方法应用于第一个数组,并在 filter() 方法内部,对第二个数组应用 contains() 函数,以检查第一个数组的元素是否在第二个数组中从索引 0($0) 开始到末尾。

方法 2:使用 Set

我们还可以使用 Set 的 intersection(_:) 方法查找两个数组之间的公共元素。此函数用于查找两个序列之间的公共元素。此方法通常用于集合 (Set),因此要将此方法用于数组,我们首先将给定数组转换为集合,然后将结果转换回数组。

语法

语法如下:-

func intersection(_other:Set)->Set

这里的 other 是另一个集合。

算法

  • 步骤 1 - 创建两个相同类型的数组。

  • 步骤 2 - 使用 intersection() 方法查找这两个数组之间的共同元素。因此,我们将两个数组都转换为集合,然后将结果转换回数组。

var commonArray = Array(Set(sequence1).intersection(Set(sequence2)))
  • 步骤 3 − 如果条件为真,则打印数组为空。

示例

在下面的示例中,我们使用 Set intersection() 方法查找两个数组之间的共同元素。

import Foundation
import Glibc

// 创建两个整数类型的数组
var sequence1 : [Int] = [4, 32, 6, 32, 2, 45]
var sequence2 : [Int] = [21, 44, 6, 2, 45, 89, 4]

// 使用 Intersection() 方法查找公共元素
var commonArray = Array(Set(sequence1).intersection(Set(sequence2)))

print("数组 1:", sequence1)
print("数组 2:", sequence2)

print("两个数组的公共元素:", commonArray)

输出

数组 1: [4, 32, 6, 32, 2, 45]
数组 2: [21, 44, 6, 2, 45, 89, 4]
两个数组的公共元素数组:[6, 45, 2, 4]

在上面的代码中,我们创建了两个整数类型的数组。现在我们使用intersection()方法查找它们之间的共同元素。因此,我们使用Set()方法将两个数组转换为一个集合,然后对两个集合应用intersection()方法,最后使用Array()将结果转换回数组。

结论

因此,为了查找两个数组之间的共同元素,我们可以根据需要使用filter()或intersection()方法。这两种方法都能很好地完成给定的任务。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部