CodeGym /Java Blog /यादृच्छिक /जावा मध्ये नकाशाची पुनरावृत्ती कशी करावी
John Squirrels
पातळी 41
San Francisco

जावा मध्ये नकाशाची पुनरावृत्ती कशी करावी

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
या पोस्टमध्ये, आपण जावामध्ये नकाशाचे पुनरावृत्ती करण्याचे विविध मार्ग शिकू. त्याचे काही सामान्य मार्ग आणि ते कसे वापरायचे ते उदाहरणांच्या मदतीने. प्रारंभ करण्यापूर्वी, आम्ही असे गृहीत धरतो की तुम्हाला Java मधील इंटरफेस आणि नकाशे समजले आहेत. तथापि, येथे आपल्यासाठी एक द्रुत रीकॅप आहे.

Java मध्ये नकाशा म्हणजे काय?

याचे बरेच अर्थ आहेत, परंतु आपण ते अशा प्रकारे मांडूया.
"नकाशा हा Java मधील इंटरफेस आहे, जो की-व्हॅल्यू जोड्यांच्या स्वरूपात डेटा संग्रहित करण्यासाठी वापरला जातो."
नकाशे कशासाठी वापरले जातात याचा विचार करत असाल तर? किंवा त्यांची कधी गरज आहे? मग वास्तविक जीवनात अशा अनेक परिस्थिती असतात जेव्हा आपल्याला की-व्हॅल्यू जोड्यांमध्ये डेटा संग्रहित करण्याची आवश्यकता असते. उदाहरणार्थ, शब्दकोशातील एका अक्षराशी संबंधित सर्व शब्द जावामध्ये नकाशाच्या स्वरूपात संग्रहित केले जाऊ शकतात.
के पतंग, राजा, कोरिया, नाइट,..., इ.
एल लावा, जीवन, प्रकाश, प्रेम, लेबनॉन, ..., इ.
शिवाय, हे अधिक चांगल्या प्रकारे समजून घेण्यासाठी तुम्ही खालील उदाहरणे पाहू शकता.
की मूल्य
कौटुंबिक आयडी कुटुंबातील सदस्य
वर्गाचे नाव विद्यार्थी आयडी
क्षेत्राचे नाव पिन कोड
क्षेत्र ब्लॉक घर क्रमांक

आम्हाला नकाशाद्वारे पुनरावृत्ती करण्याची आवश्यकता का आहे?

डेटा ऍक्सेस करण्यासाठी, बदलण्यासाठी किंवा काढून टाकण्यासाठी आम्हाला नकाशावर ट्रॅव्हर्स किंवा पुनरावृत्ती करणे आवश्यक आहे. आमच्याकडे असलेल्या काही पर्यायांचा शोध घेऊया.

Java मध्ये नकाशा पुनरावृत्ती करण्याचे काही सामान्य मार्ग कोणते आहेत?

जरी नकाशावर जाण्याचे अनेक मार्ग आहेत. तथापि, आम्ही सर्वात कार्यक्षम आणि सोप्या मार्गांवर लक्ष केंद्रित करू.
  1. ForEach लूप पद्धत
  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 loop चा वापर केला. प्रत्येकासाठी लूप वापरून, आम्हाला एक एंट्रीसेट() मिळतो जो की-व्हॅल्यू जोड्यांच्या स्वरूपात नकाशामधील डेटाचे स्वयंचलित "दृश्य" प्रदान करतो. प्रत्येक एंट्रीसेटमध्ये एक की आणि संबंधित मूल्ये असतात. जिथे तुम्ही तुमच्या गरजेनुसार Map.Entry<key, value> च्या सर्व पद्धती वापरू शकता . येथे, कन्सोलवर डेटा प्रदर्शित करण्यासाठी आम्ही फक्त getKey() आणि getValue() वापरले आहेत. एक व्यायाम म्हणून, या संकल्पनेवर तुमची आज्ञा बळकट करण्यासाठी तुम्ही उर्वरित पद्धती एक्सप्लोर करू शकता.

Iterators पद्धत वापरणे

उदाहरण


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, मूल्य = ऑक्टोबर

स्पष्टीकरण

या उदाहरणात, आम्ही नकाशावर ट्रॅव्हर्स / पुनरावृत्ती करण्यासाठी स्पष्ट पुनरावृत्ती तयार करतो. प्रथम, तुम्हाला इटरेटर क्लास इंपोर्ट करणे आवश्यक आहे, आणि नंतर एंट्रीसेटसाठी इटरेटर मिळवा. आता नकाशावर अस्तित्वात असलेली पुढील संस्था तपासत असताना नकाशावरून जा. तिकडे जा! तुमची ट्राव्हर्सल पूर्ण झाली आहे, तशीच.

फोरच लूप इटरेटर पद्धतीपेक्षा चांगला आहे का?

नकाशाच्या ट्रॅव्हर्सलसाठी तुम्ही कोणती पद्धत वापरता हे महत्त्वाचे नाही जोपर्यंत ते तुमच्यासाठी काम करत आहे. कार्यक्षमतेच्या दृष्टीने, प्रत्येक लूपसाठी आणि पुनरावृत्ती करणार्‍यांमध्ये समान वेळ जटिलता आहे . त्यामुळे इतरांपेक्षा काहीही चांगले नाही, ते तुम्हाला काय आणि कधी वापरायचे आहे यावर अवलंबून आहे.

दोन पद्धतींमध्ये काय फरक आहे?

प्रत्येकासाठी लूप नकाशामधील डेटा अपडेट/बदलण्याची परवानगी देत ​​नाही. याउलट, तुम्ही इटरेटर वापरून डेटा सहज बदलू शकता. इटरेटर्स क्लास नकाशामधील डेटा संपादित/काढण्यासाठी अंमलबजावणी प्रदान करून तुम्हाला सुविधा देतो. याउलट, तुम्ही प्रत्येकासाठी लूप वापरून नकाशा डेटा संपादित/हटवण्याचा प्रयत्न केल्यास, ते ConcurrentModificationException टाकेल . याचे कारण असे आहे की प्रत्येकासाठी लूप स्पष्टपणे पुनरावृत्ती करणारा तयार करतो, जो वापरकर्त्याच्या समोर येत नाही. त्यामुळे, तुम्हाला कोणताही डेटा बदलण्याची किंवा हटवण्याची अॅक्सेस नाही.

कोणती ट्रॅव्हर्सल पद्धत आणि कधी वापरायची?

तुमचा नकाशा पुनरावृत्ती करण्यासाठी प्रत्येकासाठी किंवा पुनरावृत्तीचा वापर करायचा की नाही याची तुम्हाला खात्री नसल्यास, तुम्ही खालील सूचना घेऊ शकता.
  • तुम्हाला नकाशात बदल करायचा असल्यास इटरेटर वापरा .
  • तुमच्याकडे नेस्टेड लूप असल्यास (जटिलता टाळण्यासाठी) प्रत्येक लूपसाठी वापरा .

निष्कर्ष

पोस्टच्या शेवटी, आम्हाला आशा आहे की तुम्ही Java मध्ये नकाशाची पुनरावृत्ती कशी करावी हे शिकले असेल. तुम्हाला याचा सराव करण्यासाठी आणि ट्रॅव्हर्सलच्या इतर पद्धती वापरून पाहण्यासाठी प्रोत्साहित केले जाते. जेव्हाही तुम्हाला अडकल्यासारखे वाटते तेव्हा मोकळ्या मनाने परत जा किंवा प्रश्न पोस्ट करा. तोपर्यंत, आनंदी शिक्षण!
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION