Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

Ruby Sets में महारत: व्यावहारिक उदाहरण, ऑपरेटर्स, और मेथड्स

Ruby सेट क्या है?

एक सेट एक क्लास है जो आइटम्स को सरणी की तरह स्टोर करता है...

लेकिन कुछ विशेष गुणों के साथ जो इसे विशिष्ट स्थितियों में 10x तेज बनाते हैं!

उसके ऊपर:

सेट में सभी आइटम्स अद्वितीय होने की गारंटी है।

इस Ruby ट्यूटोरियल में आप सीखेंगे:

  • अपने अधिकतम लाभ के लिए सेट का उपयोग कैसे और कब करें
  • सेट्स और सरणियों के बीच अंतर!
  • उपयोगी सेट मेथड्स की सूची

चलिए शुरू करते हैं!

Ruby Set उदाहरण

एक सेट एक Ruby क्लास है जो आपको अद्वितीय आइटम्स की सूची बनाने में मदद करता है।

यहां एक उदाहरण है कि यह कैसे उपयोगी है:

मान लीजिए कि आप उत्पादों की एक बड़ी सूची पर जा रहे हैं।

लेकिन इस सूची में डुप्लिकेट एंट्रीज हैं और आप केवल अद्वितीय उत्पाद चाहते हैं।

आप उन्हें एक सेट में डाल सकते हैं, और सेट यह सुनिश्चित करेगा कि आपकी उत्पाद सूची हमेशा अद्वितीय है बिना किसी अतिरिक्त काम के।

यहां कैसे करना है:

require 'set' products = Set.new products << 1 products << 1 products << 2 products # Set: {1, 2} 

एक और लाभ यह है कि इस सूची को खोजना बहुत तेज़ होगा:

products.include?(1) # true 

यह इतना तेज़ है क्योंकि खोज constant time में की जाती है।

Set बनाम Array - अंतर समझना

अब आप सोच रहे होंगे...

सेट और सरणी में क्या अंतर है?

सेट का तत्वों तक सीधा पहुंच नहीं है:

products[0] # undefined method `[]' 

यह मुख्य अंतर है।

लेकिन एक सेट को किसी भी समय सरणी में बदला जा सकता है जब आपको इसकी आवश्यकता हो:

products.to_a # [1, 2] 

सेट का उपयोग करने का पूरा बिंदु इसके दो विशेष गुणों का उपयोग करना है:

  • तेज़ लुकअप टाइम्स ( include? के साथ)
  • अद्वितीय मान

यदि आपको ये चाहिए तो सेट आपको एक अच्छा प्रदर्शन बूस्ट देगा, और आपको हर बार जब आप अद्वितीय तत्व चाहते हैं तो अपनी सरणी पर uniq कॉल नहीं करना पड़ेगा।

Set बनाम Array बेंचमार्क

यहां सरणी और सेट include? मेथड्स के बीच प्रदर्शन अंतर दिखाने के लिए एक बेंचमार्क है।

# Ruby 2.5.0 set include: 8381985.2 i/s array include: 703305.5 i/s - 11.92x slower 

इस अंतर का कारण यह है कि एक सरणी को हर एक तत्व की जांच करनी पड़ती है!

यदि आपके पास 1 मिलियन तत्वों की सरणी है तो हर बार जब आप include? कॉल करते हैं तो यह 1 मिलियन तत्वों की जांच करेगा।

सेट को ऐसा नहीं करना पड़ता।

Ruby Set मेथड्स

सेट्स के बीच कई ऑपरेशन या मेथड्स किए जा सकते हैं, यदि आपका कुछ गणित पृष्ठभूमि है तो आप उन्हें पहचान सकते हैं।

यूनियन ऑपरेटर

उपयोगी सेट मेथड्स में से एक है यूनियन ऑपरेटर:

products | (1..10) # Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 

यह ऑपरेटर आपको दो सेट्स के सभी अद्वितीय तत्वों को एक सेट में संयोजित करने की अनुमति देता है।

बता दें, यह किसी भी Enumerable ऑब्जेक्ट के साथ काम करता है, जैसे सरणियाँ, रेंज और हैश, न कि केवल Set क्लास के ऑब्जेक्ट्स।

डिफरेंस ऑपरेटर

यदि आप एक सेट के तत्वों को दूसरे सेट से हटाना चाहते हैं तो यह आपका मेथड है।

यहां एक उदाहरण है:

products - (3..4) # Set: {1, 2, 5, 6, 7, 8, 9, 10}

इंटरसेक्शन ऑपरेटर

और यहां सेट इंटरसेक्शन ऑपरेटर है:

Set.new(1..3) & Set.new(2..5) # Set: {2, 3} 

यह आपको दोनों सेट्स में सामान्य तत्व देता है।Ruby Sets में महारत: व्यावहारिक उदाहरण, ऑपरेटर्स, और मेथड्सये 3 ऑपरेटर्स (यूनियन, डिफरेंस और इंटरसेक्शन) सरणियों के साथ भी उपयोग किए जा सकते हैं।

सुपरसेट और सबसेट

एक सुपरसेट एक सेट है जिसमें दूसरे सेट के सभी तत्व होते हैं।

आप जांच सकते हैं कि क्या एक सेट दूसरे का सुपरसेट है।

इस तरह:

Set.new(10..40) >= Set.new(20..30) 

रेंज 10..40 में 20..30 शामिल है।

एक सबसेट एक सेट है जो दूसरे सेट के भागों से बना है:

Set.new(25..27) <= Set.new(20..30) 

सॉर्टेड सेट्स का उपयोग कैसे करें

यदि आप एक सेट चाहते हैं जो हमेशा सॉर्टेड रहे तो आप SortedSet क्लास का उपयोग कर सकते हैं।

इस क्लास का उपयोग करने के लिए कुछ आवश्यकताएं हैं:

  1. आप जिन ऑब्जेक्ट्स को सेट में जोड़ रहे हैं उन्हें <=> मेथड लागू करना होगा।
  2. ऑब्जेक्ट्स एक दूसरे के साथ तुलनीय होने चाहिए (इंटीजर की तुलना इंटीजर से, या स्ट्रिंग की तुलना स्ट्रिंग से)

यहां एक उदाहरण है:

sorted_numbers = SortedSet.new sorted_numbers << 5 sorted_numbers << 2 sorted_numbers << 1 sorted_numbers # SortedSet: {1, 2, 5} 

सेट्स वीडियो ट्यूटोरियल

सारांश

आपने बेहतर प्रदर्शन और आसान कोडिंग के लिए Ruby में सेट्स का उपयोग करना सीखा। आपने सरणियों और सेट्स के बीच अंतर के बारे में भी सीखा।

यदि आपको यह लेख उपयोगी लगा तो कृपया इसे साझा करें ताकि अधिक लोग इसे ढूंढ सकें 🙂

पढ़ने के लिए धन्यवाद!


  1. JavaScript सेट डेट मेथड्स JavaScript सेट डेट मेथड्स

    JavaScript में सेट डेट मेथड्स निम्न हैं -मेथडविवरणsetDate()दिन को नंबर के रूप में सेट करने के लिए।setFullYear()वर्ष सेट करने के लिए।setHours()घंटा सेट करने के लिए।setMilliseconds()मिलीसेकंड सेट करने के लिए।setMinutes()मिनट सेट करने के लिए।setMonth()महीना सेट करने के लिए।setSeconds()सेकंड सेट करने के

  1. अपने रूबी तरीकों की जासूसी कैसे करें अपने रूबी तरीकों की जासूसी कैसे करें

    रूबी में एक अंतर्निहित अनुरेखण प्रणाली है जिसे आप TracePoint . का उपयोग करके एक्सेस कर सकते हैं कक्षा। कुछ चीज़ें जिन्हें आप ट्रेस कर सकते हैं, वे हैं मेथड कॉल, नए थ्रेड और अपवाद। आप इसका उपयोग क्यों करना चाहेंगे? ठीक है, यदि आप किसी निश्चित विधि के निष्पादन का पता लगाना चाहते हैं तो यह उपयोगी हो

  1. रूबी एरे में महारत: व्यावहारिक उदाहरण और आवश्यक मेथड्स रूबी एरे में महारत: व्यावहारिक उदाहरण और आवश्यक मेथड्स

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