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+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.