ट्रैक
/
Java
Java
/
अभ्यास
/
अंतरराष्ट्रीय कॉलिंग के पारखी
अंतरराष्ट्रीय कॉलिंग के पारखी

अंतरराष्ट्रीय कॉलिंग के पारखी

सीखने का अभ्यास

परिचय

मैप

मैप एक डेटा स्ट्रक्चर है जो की-वैल्यू जोड़ों को संग्रहीत करता है। यह दूसरी प्रोग्रामिंग भाषाओं में मौजूद डिक्शनरी जैसा होता है। मैप इंटरफेस बताता है कि मैप पर कौन-कौन से काम किए जा सकते हैं।

Java में मैप के कई अलग-अलग इम्प्लीमेंटेशन होते हैं। हैशमैप सबसे ज़्यादा इस्तेमाल किए जाने वाले इम्प्लीमेंटेशन में से एक है।

// Make an instance
Map<String, Integer> fruitPrices = new HashMap<>();

मैप में एंट्री जोड़ने के लिए put का उपयोग कीजिए।

fruitPrices.put("apple", 100);
fruitPrices.put("pear", 80);
// => { "apple" => 100, "pear" => 80 }

हर की के साथ सिर्फ एक ही वैल्यू जुड़ सकती है। उसी की के साथ put कॉल करने पर उस की की वैल्यू बदल जाती है।

fruitPrices.put("pear", 40);
// => { "apple" => 100, "pear" => 40 }

किसी की की वैल्यू निकालने के लिए get का उपयोग कीजिए।

fruitPrices.get("apple"); // => 100

यह देखने के लिए कि मैप में कोई खास की मौजूद है या नहीं, containsKey का उपयोग कीजिए।

fruitPrices.containsKey("apple");  // => true
fruitPrices.containsKey("orange"); // => false

एंट्री हटाने के लिए remove का उपयोग कीजिए।

fruitPrices.put("plum", 90);  // Add plum to map
fruitPrices.remove("plum");   // Removes plum from map

size मेथड मैप में मौजूद एंट्री की संख्या लौटाता है।

fruitPrices.size();  // Returns 2

मैप में मौजूद की या वैल्यू निकालने के लिए आप keySet या values मेथड का उपयोग कर सकते हैं। keySet की को एक सेट के रूप में लौटाता है और values वैल्यू को एक कलेक्शन के रूप में लौटाता है।

fruitPrices.keySet();  // Returns "apple" and "pear" in a set
fruitPrices.values();  // Returns 100 and 80, in a Collection

निर्देश

इस अभ्यास में आप Map की मदद से अंतरराष्ट्रीय डायलिंग कोड की एक डिक्शनरी संभालने वाला कोड लिखेंगे।

इस डिक्शनरी में अंतरराष्ट्रीय डायलिंग कोड (मैप की की, एक Integer) की मदद से किसी देश का नाम (मैप की वैल्यू, एक String) खोजा जा सकता है।

1. मैप में सारे कोड लौटाइए

getCodes मेथड बनाइए। यह कोई पैरामीटर नहीं लेता और डिक्शनरी में अभी मौजूद डायलिंग कोड से देश का मैप लौटाता है।

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.getCodes();
// => empty map 

2. डिक्शनरी में एंट्री जोड़िए

इस डिक्शनरी को भरना ज़रूरी है। setDialingCode मेथड बनाइए। यह एक डायलिंग कोड और उससे जुड़ा देश लेता है और डायलिंग कोड तथा देश जोड़ देता है। अगर डायलिंग कोड मैप में पहले से मौजूद है, तो मैप में दिए गए कोड और देश डाल दीजिए।

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.setDialingCode(679, "Unknown");
// => { 679 => "Unknown" }

dialingCodes.setDialingCode(679, "Fiji");
// => { 679 => "Fiji" }

3. डायलिंग कोड से देश ढूँढिए

getCountry मेथड बनाइए। यह एक डायलिंग कोड लेता है और उस कोड वाले देश का नाम लौटाता है।

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.setDialingCode(55, "Brazil");
dialingCodes.getCountry(55);
// => "Brazil"

4. दोहराव की इजाज़त न दीजिए

डायलिंग कोड जोड़ते समय यह ध्यान रखना ज़रूरी है कि कोई कोड या देश दो बार न जुड़ जाए। ऐसी स्थिति में मान लीजिए कि पहली एंट्री ही सही एंट्री है। addNewDialingCode मेथड बनाइए, जो दिए गए डायलिंग कोड और देश की एक एंट्री जोड़ता है। लेकिन setDialingCode के उलट, अगर डायलिंग कोड या देश पहले से मैप में मौजूद है, तो यह कुछ नहीं करता।

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.addNewDialingCode(32, "Belgium");
dialingCodes.addNewDialingCode(379, "Vatican City");
// => { 32 => "Belgium", 379 => "Vatican City" }


dialingCodes.addNewDialingCode(32, "Other");
dialingCodes.addNewDialingCode(39, "Vatican City");
// => { 32 => "Belgium", 379 => "Vatican City" }

5. देश का डायलिंग कोड ढूँढिए

ऐसा कम होता है, पर गलतियाँ हो सकती हैं। गलती सुधारने के लिए हमें यह जानना होगा कि उस देश से अभी कौन-सा डायलिंग कोड जुड़ा है। यह पता लगाने के लिए कि कौन-सा डायलिंग कोड सुधारना है, findDialingCode मेथड बनाइए। यह एक देश लेता है और उस देश का डायलिंग कोड लौटाता है। अगर देश मैप में नहीं है, तो null लौटाइए।

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.addDialingCode(44, "UK");
dialingCodes.findDialingCode("UK");
// => 44

dialingCodes.findDialingCode("Unlisted");
// => null

6. देश का डायलिंग कोड बदलिए

अब जब हम जान गए हैं कि कौन-सा डायलिंग कोड सुधारना है, तो चलिए उसे बदलते हैं। updateCountryDialingCode मेथड बनाइए। यह देश का नया डायलिंग कोड और देश का नाम लेता है और उसी के अनुसार बदलाव करता है। अगर देश मैप में नहीं है, तो कुछ न कीजिए (क्योंकि यह मेथड सिर्फ गलतियाँ सुधारने में मदद करने के लिए है)।

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.addDialingCode(88, "Japan");
// => { 88 => "Japan" }

dialingCodes.updateCountryDialingCode(81, "Japan");
// => { 81 => "Japan" }

dialingCodes.updateCountryDialingCode(32, "Mars");
// => { 81 => "Japan"}
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Java Exercism

अंतरराष्ट्रीय कॉलिंग के पारखी शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Java को 26 कॉन्सेप्ट158 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।