CodeGym /جاوا بلاگ /Random-SD /جاوا ۾ نقشي کي ڪيئن ورجايو
John Squirrels
سطح
San Francisco

جاوا ۾ نقشي کي ڪيئن ورجايو

گروپ ۾ شايع ٿيل
هن پوسٽ ۾، اسان جاوا ۾ نقشي کي ٻيهر ڏيڻ جا مختلف طريقا سکندا. ان جا ڪجهه عام طريقا ۽ انهن کي ڪيئن استعمال ڪجي مثالن جي مدد سان. شروع ڪرڻ کان پهريان، اسان فرض ڪريون ٿا ته توهان جاوا ۾ انٽرفيس ۽ نقشا سمجهي رهيا آهيو. بهرحال، هتي توهان لاء هڪ تڪڙو recap آهي.

جاوا ۾ هڪ نقشو ڇا آهي؟

ان جون ڪيتريون ئي تشريحون آهن، پر اچو ته ان کي هن طرح بيان ڪريون.
"نقشو جاوا ۾ ھڪڙو انٽرفيس آھي، جيڪو ڊيٽا کي محفوظ ڪرڻ لاءِ استعمال ڪيو ويندو آھي ڪي-ويليو جوڑوں جي صورت ۾."
جيڪڏهن توهان سوچيو ٿا ته نقشا ڇا لاء استعمال ڪيا ويا آهن؟ يا جڏهن انهن جي ضرورت آهي؟ پوء حقيقي زندگي ۾ ڪيتريون ئي حالتون آهن جڏهن اسان کي ڊيٽا کي ذخيرو ڪرڻ جي ضرورت آهي اهم-قدر جوڑوں ۾. مثال طور، ڊڪشنري ۾ هڪ اکر سان ملندڙ سڀئي لفظ جاوا ۾ نقشي جي صورت ۾ محفوظ ڪري سگهجن ٿا.
ڪي پتنگ، بادشاهه، ڪوريا، نائٹ، ...، وغيره.
ايل لاوا، زندگي، روشني، پيار، لبنان، ...، وغيره.
ان کان علاوه، توھان ھيٺ ڏنل مثالن تي ھڪڙي نظر ڪري سگھو ٿا ھن کي بهتر سمجھڻ لاء.
چاٻي قدر
خانداني ID گهر ڀاتي
ڪلاس جو نالو شاگردن جي سڃاڻپ
علائقي جو نالو زپ ڪوڊس
ايريا بلاڪ گھر جا نمبر

اسان کي نقشي ذريعي ٻيهر ورجائڻ جي ضرورت ڇو آهي؟

ڊيٽا تائين رسائي، تبديل ڪرڻ يا هٽائڻ لاءِ اسان کي نقشي تي وڃڻ يا ٻيهر ڪرڻ جي ضرورت آهي. اچو ته ڪجهه اختيارن کي ڳوليون جيڪي اسان وٽ آهن.

جاوا ۾ نقشي کي ٻيهر ڏيڻ جا ڪجھ عام طريقا ڇا آھن؟

جيتوڻيڪ نقشي تي چڙهڻ جا ڪيترائي طريقا آهن. بهرحال، اسان سڀ کان وڌيڪ موثر ۽ سادي طريقن تي ڌيان ڏينداسين.
  1. ForEach لوپ جو طريقو
  2. Iterators جو طريقو
مھرباني ڪري ھيٺ ڏنل ٻنهي طريقن جي عمل کي ڳولھيو.

Foreach لوپ جو طريقو استعمال ڪندي

مثال

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 لوپ نقشي تي ٻيهر ڪرڻ لاءِ. هر هڪ لوپ لاءِ استعمال ڪندي، اسان کي هڪ entrySet() ملي ٿو جيڪو نقشي ۾ ڊيٽا جو هڪ خودڪار ”ڏس“ مهيا ڪري ٿو، ڪي-ويليو جوڑوں جي صورت ۾. هر entrySet ۾ هڪ اهم ۽ لاڳاپيل قدر شامل آهن. جتي توهان 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());

		}
	}
}

پيداوار

key = 11، قدر = نومبر ڪي = 1، قدر = جنوري ڪي = 12، قدر = ڊسمبر ڪيئي = 2، قدر = فيبروري ڪي = 3، قدر = مارچ ڪي = 4، قدر = اپريل ڪي = 5، قدر = مئي ڪيئي = 6، قدر = جون ڪي = 7، قدر = جولاءِ ڪي = 8، قدر = آگسٽ ڪي = 9، قدر = سيپٽمبر ڪي = 10، قدر = آڪٽوبر

وضاحت

هن مثال ۾، اسان نقشي تي پار ڪرڻ / ٻيهر ڪرڻ لاءِ واضح آئٽرٽر ٺاهيندا آهيون. پهرين، توهان کي آئٽرٽر ڪلاس درآمد ڪرڻ جي ضرورت آهي، ۽ پوء انٽري سيٽ لاء آئٽرٽر حاصل ڪريو. ھاڻي نقشي کي پار ڪريو جڏھن ته ايندڙ اداري کي چيڪ ڪريو جيڪو نقشي تي موجود آھي. اتي وڃو! تنهنجو سفر پورو ٿيو، بس ائين ئي.

ڇا Foreach لوپ آئٽرٽر جي طريقي کان بهتر آهي؟

اهو مسئلو ناهي ته توهان ڪهڙي طريقي سان استعمال ڪندا آهيو نقشي جي منتقلي لاءِ جيستائين اهو توهان لاءِ ڪم ڪري ٿو. ڪارڪردگيءَ جي لحاظ کان، ٻنهي لاءِ-هر لوپ ۽ آئٽرٽر وٽ ساڳئي وقت جي پيچيدگي آهي . تنهن ڪري ٻيو ڪو به بهتر ناهي، اهو ان تي منحصر آهي ته توهان کي استعمال ڪرڻ جي ضرورت آهي ۽ جڏهن.

ٻن طريقن جي وچ ۾ فرق ڇا آهي؟

هر لوپ لاءِ نقشي ۾ ڊيٽا کي اپڊيٽ ڪرڻ/تبديل ڪرڻ جي اجازت نٿو ڏئي. ان جي برعڪس، توهان آساني سان ڊيٽا کي تبديل ڪري سگھو ٿا iterators استعمال ڪندي. Iterators ڪلاس توهان کي نقشي ۾ ڊيٽا کي ايڊٽ ڪرڻ/هٽائڻ لاءِ عمل درآمد فراهم ڪندي سهولت فراهم ڪري ٿو. ان جي برعڪس، جيڪڏھن توھان ڪوشش ڪرڻ جي ڪوشش ڪريو نقشي جي ڊيٽا کي تبديل ڪرڻ/ ڊاھڻ لاءِ- for-each loop استعمال ڪري، اھو اڇلائي ڇڏيندو ConcurrentModificationException . هن جو سبب اهو آهي ته هر لوپ لاءِ واضح طور تي هڪ آئٽرٽر ٺاهي ٿو، جيڪو صارف جي سامهون نه آهي. تنهن ڪري، توهان کي ڪنهن به ڊيٽا کي تبديل ڪرڻ يا حذف ڪرڻ جي رسائي نه آهي.

ڪهڙو ٽرورسل طريقو استعمال ڪرڻ ۽ ڪڏهن؟

جيڪڏهن توهان کي پڪ ناهي ته توهان جي نقشي کي ٻيهر ڏيڻ لاءِ هر هڪ لاءِ استعمال ڪرڻ يا ٻيهر ڪرڻ وارا، ته پوءِ توهان هيٺيون تجويزون وٺي سگهو ٿا.
  • جيڪڏهن توهان کي نقشي ۾ ترميم ڪرڻي آهي ته آئٽرٽر استعمال ڪريو .
  • هر هڪ لوپ لاءِ استعمال ڪريو جيڪڏهن توهان وٽ نسٽڊ لوپ آهن (پيچيدگي کان بچڻ لاءِ).

نتيجو

پوسٽ جي آخر تائين، اسان کي اميد آهي ته توهان سکيو هوندو ته جاوا ۾ نقشي کي ڪيئن ٺهرايو. توھان کي حوصلا افزائي ڪئي ويندي آھي انھن تي عمل ڪريو ۽ ڪوشش ڪريو ٻين طريقن سان گڏ ٽرورسل. پوئتي هٽڻ يا پوسٽ ڪرڻ لاءِ آزاد محسوس ڪريو سوالن کي جڏهن به توهان بيٺو محسوس ڪيو. ان وقت تائين، خوش سکيا!
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION