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()方法。兩種方法都能很好地完成給定的任務。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP