स्विफ्ट में ऐरे से डुप्लिकेट हटाना: शुरुआती लोगों के लिए ट्यूटोरियल

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

स्विफ्ट ऐरे में डुप्लिकेट से कैसे छुटकारा पाएं: शुरुआती लोगों के लिए सरल गाइड

\n\n

क्या आपने कभी ऐसी स्थिति का सामना किया है जहां स्विफ्ट में आपका ऐरे बार-बार आने वाले डेटा का "कचरा" बन गया हो? यदि हां, तो आप अकेले नहीं हैं। Stack Overflow पर प्रश्न "Removing duplicate elements from an array in Swift" को हजारों बार देखा गया है - और यह आश्चर्यजनक नहीं है। डुप्लिकेट के साथ काम करना सबसे आम कार्यों में से एक है, जिसका सामना हर डेवलपर करता है, चाहे वह शुरुआती हो या विशेषज्ञ। आज हम एक बार और हमेशा के लिए समझेंगे कि स्विफ्ट में ऐरे से डुप्लिकेट तत्वों को सुरुचिपूर्ण और कुशलता से कैसे हटाया जाए, सिद्ध तरीकों और वास्तविक कोड उदाहरणों का उपयोग करके।

\n\n

यह क्यों महत्वपूर्ण है: व्यावहारिक परिदृश्य

\n\n

कल्पना करें कि आप संपर्क प्रबंधन के लिए एक ऐप लिख रहे हैं। उपयोगकर्ता 1000 प्रविष्टियों की एक सूची आयात करता है, लेकिन इसमें 200 डुप्लिकेट हैं। या आप API से डेटा के साथ काम कर रहे हैं, जहां एक ही उत्पाद कई बार आता है। डुप्लिकेट न केवल इंटरफ़ेस को अव्यवस्थित करते हैं, बल्कि तार्किक त्रुटियों, प्रसंस्करण समय में वृद्धि और डेटा में भ्रम पैदा कर सकते हैं। ऐरे को साफ करने की क्षमता एक बुनियादी बात है जो आपको डिबगिंग के घंटे बचाएगी।

\n\n

इस ट्यूटोरियल में, हम कई दृष्टिकोणों पर विचार करेंगे: Set के सरल उपयोग से लेकर तत्वों के क्रम को बनाए रखने और कस्टम डेटा प्रकारों के साथ काम करने के अधिक उन्नत तरीकों तक। चलिए शुरू करते हैं!

\n\n

विधि 1: Set का उपयोग - सबसे तेज़ और आसान तरीका

\n\n

स्विफ्ट में ऐरे से डुप्लिकेट हटाने के लिए Stack Overflow पर सबसे लोकप्रिय उत्तर Set संरचना का उपयोग करना है। Set अद्वितीय तत्वों का एक अक्रमित संग्रह है। ऐरे को Set में बदलकर, हम स्वचालित रूप से सभी पुनरावृत्तियों से छुटकारा पा लेते हैं, और फिर इसे वापस ऐरे में बदल देते हैं।

\n\n

कोड उदाहरण:

\n\n
let numbers = [1, 2, 3, 2, 4, 5, 1, 3]\nlet uniqueNumbers = Array(Set(numbers))\nprint(uniqueNumbers) // आउटपुट: [5, 2, 3, 1, 4] (क्रम भिन्न हो सकता है)\n
\n\n

यह विधि बहुत तेज़ी से काम करती है, विशेष रूप से बड़े ऐरे पर, क्योंकि Set हैशिंग का उपयोग करता है। लेकिन एक बात है: तत्वों का क्रम संरक्षित नहीं होता है। यदि आपके लिए मूल क्रम महत्वपूर्ण है, तो आगे पढ़ें।

\n\n

Set का उपयोग कब करें?

\n
    \n
  • जब तत्वों के क्रम का कोई महत्व न हो।
  • \n
  • जब सबसे तेज़ समाधान की आवश्यकता हो।
  • \n
  • जब आप प्रिमिटिव प्रकारों (Int, String, Double आदि) के साथ काम कर रहे हों, जो Hashable प्रोटोकॉल का पालन करते हैं।
  • \n
\n\n

विधि 2: NSOrderedSet के साथ क्रम बनाए रखना

\n\n

यदि आप ऐसे प्रोजेक्ट में काम कर रहे हैं जहां Objective-C runtime की अनुमति है (जैसे पुराने प्रोजेक्ट या मिश्रित कोड बेस), तो आप NSOrderedSet का उपयोग कर सकते हैं। Foundation का यह वर्ग जोड़ने के क्रम को बनाए रखता है और स्वचालित रूप से डुप्लिकेट हटाता है।

\n\n

कोड उदाहरण:

\n\n
import Foundation\n\nlet names = ["अन्ना", "बोरिस", "अन्ना", "विक्टर", "बोरिस"]\nlet uniqueNames = NSOrderedSet(array: names).array as! [String]\nprint(uniqueNames) // आउटपुट: ["अन्ना", "बोरिस", "विक्टर"]\n
\n\n

लाभ: क्रम संरक्षित, कोड छोटा। नुकसान: Objective-C के साथ ब्रिज का उपयोग किया जाता है, जो शुद्ध स्विफ्ट प्रोजेक्ट के लिए अनावश्यक हो सकता है। इसके अलावा, NSOrderedSet अतिरिक्त ओवरहेड के कारण नेटिव Set की तुलना में धीमा काम करता है।

\n\n

विधि 3: क्रम बनाए रखते हुए कस्टम फ़िल्टरिंग (शुद्ध स्विफ्ट)

\n\n

यह आधुनिक स्विफ्ट के लिए सबसे लचीला और अनुशंसित तरीका है। हम परिणाम के लिए एक खाली ऐरे और पहले से देखे गए तत्वों को ट्रैक करने के लिए एक Set बनाते हैं। मूल ऐरे से गुज़रते हुए, हम तत्व को परिणाम में तभी जोड़ते हैं जब वह Set में पहले से मौजूद न हो।

\n\n

कोड उदाहरण:

\n\n
func removeDuplicates<T: Hashable>(from array: [T]) -> [T] {\n    var seen = Set<T>()\n    var result = [T]()\n    \n    for element in array {\n                

ब्लॉग

पुस्तक अनुशंसाएँ