Swift程式檢查兩個字典是否相等


在 Swift 中,字典是一個無序的集合,其中資料以鍵值對的形式儲存,鍵是唯一的識別符號。因此,要檢查兩個字典是否相等,我們首先需要檢查兩個字典的大小是否相等。如果是,則檢查兩個字典是否包含相同的鍵值對。如果這兩個條件都相等,則表示給定的兩個字典相等。如果任何一個條件為假,則表示給定的字典不相等。

演算法

  • 步驟 1 − 建立一個函式,該函式接受兩個引數並返回布林值。

  • 步驟 2 − 在函式中,我們首先檢查兩個給定字典的計數是否相同。

  • 步驟 3 − 如果計數相等,則檢查給定的鍵值對是否相等。

  • 步驟 4 − 如果鍵值對相等,則返回 true,否則返回 false。

  • 步驟 5 − 建立兩個包含鍵值對的示例字典。

  • 步驟 6 − 現在呼叫上面建立的函式並將它們傳遞進去。

  • 步驟 7 − 顯示結果。

示例

在下面的 Swift 程式中,我們將檢查兩個字典是否相等。因此,建立兩個字典。然後建立一個名為 checkEquality() 的函式,該函式以兩個字典作為引數並返回一個布林值,該值表示給定的字典是否相等。因此,它首先檢查給定的字典是否具有相同數量的鍵值對。如果不是,則返回 false。如果是,則它將遍歷第一個字典中的每個鍵值對,並檢查第二個字典是否也包含相同的鍵值對。如果兩個字典中的任何鍵值對不匹配,則返回 false,否則返回 true。因此,在給定的示例中,兩個字典相同,因此我們在輸出中得到“兩個字典相等”的訊息。

import Foundation
import Glibc

// Function to check if the given two dictionaries are equal or not
func checkEquality(D1: [String:String], D2: [String: String])-> Bool {

   // Checking if both the dictionaries have the same size or not
   guard D1.count == D2.count else {
      return false
   }
    
   // Checking if both the dictionaries have same key-value pairs or not
   for (key, value) in D1{
      guard let val = D2[key], value == val else {
         return false
      }
   }
   return true
}

let dict1 = ["name": "Mona", "company": "XMK.pvt", "city": "Mumbai"]
let dict2 = ["name": "Mona", "company": "XMK.pvt", "city": "Mumbai"]

if checkEquality(D1:dict1, D2: dict2) {
   print("Both the dictionaries are equal")
} else {
   print("Given dictionaries are not equal")
}

輸出

Both the dictionaries are equal

結論

因此,這就是我們如何檢查兩個字典是否相等。上面討論的方法是檢查兩個字典相等性的最有效方法。您還可以使用 == 運算子和 isEqual(to:) 方法,但它們不如討論的方法好。此外,isEqual(to:) 函式僅適用於 NSDictionary。

更新於: 2023年5月9日

590 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告