CodeGym /Java Blog /अनियमित /जावा में मानचित्र को कैसे पुन: सक्रिय करें
John Squirrels
स्तर 41
San Francisco

जावा में मानचित्र को कैसे पुन: सक्रिय करें

अनियमित ग्रुप में प्रकाशित
इस पोस्ट में, हम जावा में मैप को पुनरावृति करने के विभिन्न तरीके सीखेंगे। इसके कुछ सामान्य तरीके और उदाहरणों की मदद से उनका उपयोग कैसे करें। आरंभ करने से पहले, हम मानते हैं कि आप जावा में इंटरफेस और मैप्स को समझते हैं। हालाँकि, यहाँ आपके लिए एक त्वरित पुनर्कथन है।

जावा में मानचित्र क्या है?

इसकी कई व्याख्याएँ हैं, लेकिन आइए इसे सीधे इस तरह से रखें।
"मानचित्र जावा में एक इंटरफ़ेस है, जिसका उपयोग डेटा को कुंजी-मूल्य जोड़े के रूप में संग्रहीत करने के लिए किया जाता है।"
यदि आप सोच रहे हैं कि मानचित्रों का उपयोग किस लिए किया जाता है? या उनकी आवश्यकता कब होती है? फिर वास्तविक जीवन में ऐसी कई स्थितियाँ होती हैं जब हमें की-वैल्यू पेयर में डेटा स्टोर करने की आवश्यकता होती है। उदाहरण के लिए, शब्दकोश में एक अक्षर से संबंधित सभी शब्दों को जावा में मानचित्र के रूप में संग्रहीत किया जा सकता है।
पतंग, राजा, कोरिया, नाइट,..., आदि।
एल लावा, जीवन, प्रकाश, प्रेम, लेबनान,..., आदि।
इसके अलावा, आप इसे बेहतर ढंग से समझने के लिए निम्नलिखित उदाहरणों पर एक नज़र डाल सकते हैं।
चाबी कीमत
परिवार आईडी परिवार के सदस्य
कक्षा का नाम छात्र आईडी
क्षेत्र का नाम ज़िप कोड
एरिया ब्लॉक हाउस नंबर

हमें मानचित्र के माध्यम से पुनरावृति करने की आवश्यकता क्यों है?

डेटा तक पहुँचने, संशोधित करने या हटाने के लिए हमें मानचित्र पर ट्रैवर्स या पुनरावृति करने की आवश्यकता होती है। आइए हमारे पास मौजूद कुछ विकल्पों का अन्वेषण करें।

जावा में मानचित्र को पुन: सक्रिय करने के कुछ सामान्य तरीके क्या हैं?

हालांकि मानचित्र को पार करने के कई तरीके हैं। हालांकि, हम सबसे कुशल और सरल तरीकों पर ध्यान केंद्रित करेंगे।
  1. फॉरएच लूप विधि
  2. इटरेटर विधि
कृपया नीचे दी गई दोनों विधियों के कार्यान्वयन का पता लगाएं।

फोरच लूप विधि का उपयोग करना

उदाहरण


import java.util.Map;
import java.util.HashMap;

public class ForEachDemo {

	public static void main(String[] args) {

		Map<String, String> businessDays = new HashMap<String, String>();

		// store business days i-e; key/value pairs in the Map
		businessDays.put("1", "Monday");
		businessDays.put("2", "Tuesday");
		businessDays.put("3", "Wednesday");
		businessDays.put("4", "Thursday");
		businessDays.put("5", "Friday");

		// Iterating over the Map.entrySet() using map.forEach
		for (Map.Entry<String, String> entry : businessDays.entrySet()) 
		{
			System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); 
		}
	}
}

उत्पादन

कुंजी = 1, मान = सोमवार कुंजी = 2, मान = मंगलवार कुंजी = 3, मान = बुधवार कुंजी = 4, मान = गुरुवार कुंजी = 5, मान = शुक्रवार

व्याख्या

इस उदाहरण में हमने मानचित्र पर पुनरावृति करने के लिए foreach लूप का उपयोग किया। फॉर-ईच लूप का उपयोग करके, हमें एक एंट्रीसेट () मिलता है, जो कि-वैल्यू पेयर के रूप में मैप में डेटा का एक स्वचालित "व्यू" प्रदान करता है। प्रत्येक प्रविष्टिसेट में एक कुंजी और संबंधित मान होते हैं। जहाँ आप अपनी आवश्यकता के अनुसार Map.Entry<key, value> के सभी तरीकों का उपयोग कर सकते हैं । यहां, हमने कंसोल पर डेटा प्रदर्शित करने के लिए केवल getKey() और getValue() का उपयोग किया है। एक अभ्यास के रूप में, आप इस अवधारणा पर अपने नियंत्रण को मजबूत करने के लिए बाकी विधियों का पता लगा सकते हैं।

इटरेटर विधि का उपयोग करना

उदाहरण


import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class MapIterator {

	public static void main(String[] args) {

		Map<String, String> monthsInAYear = new HashMap<String, String>();

		// store business days i-e; key/value pairs in the Map
		monthsInAYear.put("1", "January");
		monthsInAYear.put("2", "February");
		monthsInAYear.put("3", "March");
		monthsInAYear.put("4", "April");
		monthsInAYear.put("5", "May");
		monthsInAYear.put("6", "June");
		monthsInAYear.put("7", "July");
		monthsInAYear.put("8", "August");
		monthsInAYear.put("9", "September");
		monthsInAYear.put("10", "October");
		monthsInAYear.put("11", "November");
		monthsInAYear.put("12", "December");

		// iterate map / traverse the map using using iterator
		Iterator<Map.Entry<String, String>> iterator = monthsInAYear.entrySet().iterator();

		while (iterator.hasNext()) 
		{
			// check if next entry exists in the map
			Map.Entry<String, String> entry = iterator.next(); 
			System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());

		}
	}
}

उत्पादन

कुंजी = 11, मान = नवंबर कुंजी = 1, मान = जनवरी कुंजी = 12, मान = दिसंबर कुंजी = 2, मान = फ़रवरी कुंजी = 3, मान = मार्च कुंजी = 4, मान = अप्रैल कुंजी = 5, मान = मई कुंजी = 6, मान = जून कुंजी = 7, मान = जुलाई कुंजी = 8, मान = अगस्त कुंजी = 9, मान = सितंबर कुंजी = 10, मान = अक्टूबर

व्याख्या

इस उदाहरण में, हम मानचित्र पर ट्रैवर्स / पुनरावृति करने के लिए स्पष्ट इटरेटर बनाते हैं। सबसे पहले, आपको इटरेटर वर्ग को आयात करने की आवश्यकता है, और फिर एंट्रीसेट के लिए इटरेटर प्राप्त करें। अब मानचित्र पर मौजूद अगली इकाई की जाँच करते हुए मानचित्र को पार करें। तुम वहाँ जाओ! आपका ट्रैवर्सल पूरा हो गया है, बस ऐसे ही।

क्या फोरच लूप इटरेटर विधि से बेहतर है?

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

दोनों विधियों में क्या अंतर है?

for-प्रत्येक लूप मानचित्र में डेटा को अद्यतन/संशोधित करने की अनुमति नहीं देता है। इसके विपरीत, आप इटरेटर्स का उपयोग करके डेटा को आसानी से संशोधित कर सकते हैं। मानचित्र में डेटा को संपादित/निकालने के लिए कार्यान्वयन प्रदान करके इटरेटर वर्ग आपको सुविधा प्रदान करता है। इसके विपरीत, यदि आप प्रत्येक लूप के लिए मैप डेटा को संपादित/हटाने का प्रयास करते हैं, तो यह एक ConcurrentModificationException फेंक देगा । इसका कारण यह है कि for-प्रत्येक लूप निहित रूप से एक पुनरावर्तक बनाता है, जो उपयोगकर्ता के सामने नहीं आता है। इसलिए, आपके पास किसी डेटा को संशोधित करने या हटाने की पहुंच नहीं है।

किस ट्रैवर्सल विधि का उपयोग करना है और कब?

यदि आप सुनिश्चित नहीं हैं कि आपके नक्शे को पुनरावृत्त करने के लिए प्रत्येक के लिए या पुनरावृत्तियों का उपयोग करना है या नहीं, तो आप निम्नलिखित सुझाव ले सकते हैं।
  • यदि आपको मानचित्र को संशोधित करना है तो पुनरावर्तक उपयोगकर्ता ।
  • यदि आपके पास नेस्टेड लूप हैं (जटिलता से बचने के लिए) प्रत्येक लूप के लिए उपयोग करें ।

निष्कर्ष

पोस्ट के अंत तक, हम आशा करते हैं कि आपने जावा में मानचित्र को पुनरावृत्त करना सीख लिया है। आपको इनका अभ्यास करने और ट्रैवर्सल के अन्य तरीकों को भी आजमाने के लिए प्रोत्साहित किया जाता है। जब भी आप अटके हुए महसूस करें तो बेझिझक वापस आएं या प्रश्न पोस्ट करें। तब तक, हैप्पी लर्निंग!
टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION