CodeGym /جاوا بلاگ /Random-UR /جاوا میں نقشہ کی تکرار کیسے کریں۔
John Squirrels
سطح
San Francisco

جاوا میں نقشہ کی تکرار کیسے کریں۔

گروپ میں شائع ہوا۔
اس پوسٹ میں، ہم جاوا میں نقشہ کو اعادہ کرنے کے مختلف طریقے سیکھیں گے۔ اس کے کچھ عام طریقے اور ان کو استعمال کرنے کا طریقہ مثالوں کی مدد سے۔ شروع کرنے سے پہلے، ہم فرض کرتے ہیں کہ آپ جاوا میں انٹرفیس اور نقشے کو سمجھتے ہیں۔ تاہم، یہاں آپ کے لیے ایک فوری خلاصہ ہے۔

جاوا میں نقشہ کیا ہے؟

اس کی بہت سی تشریحات ہیں، لیکن آئیے اسے صرف اس طرح بیان کرتے ہیں۔
"نقشہ جاوا میں ایک انٹرفیس ہے، جو ڈیٹا کو کلیدی قدر کے جوڑوں کی شکل میں ذخیرہ کرنے کے لیے استعمال ہوتا ہے۔"
اگر آپ سوچ رہے ہیں کہ نقشے کس لیے استعمال ہوتے ہیں؟ یا ان کی ضرورت کب ہے؟ پھر حقیقی زندگی میں بہت سے حالات ایسے ہوتے ہیں جب ہمیں کلیدی قدر کے جوڑوں میں ڈیٹا ذخیرہ کرنے کی ضرورت ہوتی ہے۔ مثال کے طور پر، لغت میں ایک حرف سے متعلق تمام الفاظ جاوا میں نقشے کی صورت میں محفوظ کیے جا سکتے ہیں۔
کے پتنگ، بادشاہ، کوریا، نائٹ،...، وغیرہ
ایل لاوا، زندگی، روشنی، محبت، لبنان،...، وغیرہ۔
مزید برآں، آپ اسے بہتر طور پر سمجھنے کے لیے درج ذیل مثالوں پر ایک نظر ڈال سکتے ہیں۔
چابی قدر
فیملی آئی ڈی خاندان کے افراد
کلاس کا نام طالب علم کی شناخت
علاقے کا نام زپ کوڈز
ایریا بلاک گھر کے نمبر

ہمیں نقشہ کے ذریعے تکرار کرنے کی ضرورت کیوں ہے؟

اعداد و شمار تک رسائی، ترمیم یا ہٹانے کے لیے ہمیں نقشے کو عبور کرنے یا اعادہ کرنے کی ضرورت ہے۔ آئیے ہمارے پاس موجود کچھ اختیارات کو دریافت کریں۔

جاوا میں نقشہ کو اعادہ کرنے کے کچھ عام طریقے کیا ہیں؟

اگرچہ نقشے کو عبور کرنے کے بہت سے طریقے ہیں۔ تاہم، ہم سب سے زیادہ موثر اور آسان طریقوں پر توجہ مرکوز کریں گے.
  1. ForEach لوپ کا طریقہ
  2. Iterators کا طریقہ
براہ کرم ذیل میں دونوں طریقوں کا نفاذ تلاش کریں۔

فاریچ لوپ کا طریقہ استعمال کرنا

مثال

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() ملتا ہے جو نقشے میں ڈیٹا کا ایک خودکار "ویو" فراہم کرتا ہے، کلیدی قدر کے جوڑوں کی صورت میں۔ ہر انٹری سیٹ میں ایک کلیدی اور متعلقہ اقدار ہوتی ہیں۔ جہاں آپ 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، قدر = اکتوبر

وضاحت

اس مثال میں، ہم نقشے کو عبور کرنے/دوہرانے کے لیے واضح تکرار کرنے والا بناتے ہیں۔ سب سے پہلے، آپ کو iterator کلاس درآمد کرنے کی ضرورت ہے، اور پھر entrySet کے لیے iterator حاصل کریں۔ اب نقشے کو عبور کرتے ہوئے نقشے پر موجود اگلی ہستی کو چیک کرتے رہیں۔ وہاں تم جاؤ! آپ کا ٹراورسل مکمل ہے، بالکل اسی طرح۔

کیا Foreach لوپ تکرار کرنے والے طریقہ سے بہتر ہے؟

اس سے کوئی فرق نہیں پڑتا ہے کہ آپ نقشے کو عبور کرنے کے لیے کون سا طریقہ استعمال کرتے ہیں جب تک کہ یہ آپ کے لیے کام کرتا ہے۔ کارکردگی کے لحاظ سے، for-each loop اور iterators دونوں میں ایک ہی وقت کی پیچیدگی ہے ۔ لہذا کوئی بھی دوسرے سے بہتر نہیں ہے، یہ اس بات پر منحصر ہے کہ آپ کو کیا اور کب استعمال کرنے کی ضرورت ہے۔

دونوں طریقوں میں کیا فرق ہے؟

ہر ایک کے لیے لوپ نقشے میں ڈیٹا کو اپ ڈیٹ/تبدیل کرنے کی اجازت نہیں دیتا ہے۔ اس کے برعکس، آپ تکرار کرنے والوں کا استعمال کرتے ہوئے آسانی سے ڈیٹا میں ترمیم کر سکتے ہیں۔ تکرار کرنے والوں کی کلاس نقشے میں موجود ڈیٹا میں ترمیم/ہٹانے کے لیے عمل درآمد فراہم کرکے آپ کو سہولت فراہم کرتی ہے۔ اس کے برعکس، اگر آپ for-each لوپ کا استعمال کرتے ہوئے نقشہ کے ڈیٹا میں ترمیم/حذف کرنے کی کوشش کرتے ہیں، تو یہ ConcurrentModificationException کو پھینک دے گا ۔ اس کی وجہ یہ ہے کہ for-each لوپ واضح طور پر ایک تکرار کرنے والا بناتا ہے، جو صارف کے سامنے نہیں آتا۔ لہذا، آپ کو کسی بھی ڈیٹا میں ترمیم یا حذف کرنے کی رسائی نہیں ہے۔

کون سا ٹراورسل طریقہ استعمال کرنا ہے اور کب؟

اگر آپ اس بات کا یقین نہیں کر رہے ہیں کہ آپ کے نقشے کو دوبارہ بنانے کے لیے for-each یا تکرار کرنے والوں کو استعمال کرنا ہے، تو آپ درج ذیل تجاویز لے سکتے ہیں۔
  • اگر آپ کو نقشے میں ترمیم کرنی ہے تو تکرار کرنے والے کو استعمال کریں ۔
  • اگر آپ کے پاس نیسٹڈ لوپ ہیں (پیچیدگی سے بچنے کے لیے) تو ہر ایک کے لیے لوپ کا استعمال کریں ۔

نتیجہ

پوسٹ کے اختتام تک، ہم امید کرتے ہیں کہ آپ نے جاوا میں نقشے کو دوبارہ بنانے کا طریقہ سیکھ لیا ہوگا۔ آپ کو ان پر عمل کرنے کے لیے حوصلہ افزائی کی جاتی ہے اور ٹراورسل کے دوسرے طریقے بھی آزمائیں۔ جب بھی آپ پھنسے ہوئے محسوس کریں تو بلا جھجھک پیچھے ہٹیں یا سوالات پوسٹ کریں۔ تب تک، سیکھنے کی خوشی!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION