CodeGym /مدونة جافا /Random-AR /كيفية تكرار الخريطة في جافا
John Squirrels
مستوى
San Francisco

كيفية تكرار الخريطة في جافا

نشرت في المجموعة
في هذا المنشور، سوف نتعلم طرقًا مختلفة لتكرار الخريطة في Java. بعض طرقه الشائعة وكيفية استخدامها بمساعدة الأمثلة. قبل البدء، نفترض أنك تفهم الواجهات والخرائط في Java. ومع ذلك، إليك خلاصة سريعة لك.

ما هي الخريطة في جافا؟

هناك العديد من التفسيرات لهذا، ولكن دعونا نضع الأمر بهذه الطريقة ببساطة.
"الخريطة عبارة عن واجهة في Java تُستخدم لتخزين البيانات في شكل أزواج قيمة المفتاح."
إذا كنت تفكر في ما هي الخرائط المستخدمة؟ أو متى تكون هناك حاجة إليها؟ ثم هناك العديد من المواقف في الحياة الواقعية عندما نحتاج إلى تخزين البيانات في أزواج ذات قيمة رئيسية. على سبيل المثال، يمكن تخزين جميع الكلمات المقابلة لحرف واحد في القاموس على شكل خريطة في Java.
ك طائرة ورقية، ملك، كوريا، فارس،...، إلخ.
ل لافا، حياة، نور، حب، لبنان،...، إلخ.
علاوة على ذلك، يمكنك إلقاء نظرة على الأمثلة التالية لفهم ذلك بشكل أفضل.
مفتاح قيمة
معرف العائلة أفراد الأسرة
اسم الفئة معرفات الطلاب
اسم المنطقة الرمز البريدي
كتلة المنطقة أرقام المنزل

لماذا نحتاج إلى التكرار من خلال الخريطة؟

نحتاج إلى اجتياز الخريطة أو تكرارها للوصول إلى البيانات أو تعديلها أو إزالتها. دعونا نستكشف بعض الخيارات المتاحة لدينا.

ما هي بعض الطرق الشائعة لتكرار الخريطة في Java؟

على الرغم من وجود طرق عديدة لاجتياز الخريطة. ومع ذلك، سنركز على الطرق الأكثر فعالية وبساطة.
  1. طريقة حلقة ForEach
  2. طريقة التكرارات
يرجى الاطلاع على تنفيذ كلتا الطريقتين أدناه.

باستخدام طريقة حلقة 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 للتكرار على الخريطة. باستخدام حلقة for-each، نحصل على enterSet () الذي يوفر "عرضًا" آليًا للبيانات الموجودة في الخريطة، في شكل أزواج قيمة المفتاح. تحتوي كل مجموعة إدخال على مفتاح وقيم مقابلة. حيث يمكنك استخدام كافة أساليب 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، القيمة = أكتوبر

توضيح

في هذا المثال، قمنا بإنشاء مكرر صريح لاجتياز/التكرار عبر الخريطة. أولاً، تحتاج إلى استيراد فئة التكرار، ثم الحصول على التكرار لمجموعة الإدخال. الآن قم باجتياز الخريطة مع الاستمرار في التحقق من الكيان التالي الموجود على الخريطة. ها أنت ذا! اكتمل اجتيازك، تمامًا مثل ذلك.

هل حلقة Foreach أفضل من طريقة التكرارات؟

لا يهم الطريقة التي تستخدمها لاجتياز الخريطة طالما أنها تؤدي المهمة نيابةً عنك. من حيث الأداء، تتمتع كل من حلقة for-each والمكررات بنفس التعقيد الزمني . لذلك لا شيء أفضل من الآخر، يعتمد الأمر على ما تحتاج إلى استخدامه ومتى.

ما هو الفرق بين الطريقتين؟

لا تسمح حلقة for-each بتحديث/تعديل البيانات في الخريطة. على العكس من ذلك، يمكنك بسهولة تعديل البيانات باستخدام التكرارات. تسهل عليك فئة التكرارات من خلال توفير التنفيذ لتحرير/إزالة البيانات في الخريطة. على العكس من ذلك، إذا حاولت تحرير/حذف بيانات الخريطة باستخدام حلقة for-each، فسوف يتم طرح ConcurrentModificationException . والسبب في ذلك هو أن حلقة for-each تنشئ ضمنيًا مكررًا لا يتم كشفه للمستخدم. ومن ثم، ليس لديك حق الوصول لتعديل أو حذف أي بيانات.

ما هي طريقة الاجتياز التي يجب استخدامها ومتى؟

إذا لم تكن متأكدًا مما إذا كنت تريد استخدام for-each أو التكرارات لتكرار خريطتك، فيمكنك اتباع الاقتراحات التالية.
  • استخدم المكرر إذا كان عليك تعديل الخريطة.
  • استخدم حلقة for-each إذا كان لديك حلقات متداخلة (لتجنب التعقيد).

خاتمة

بحلول نهاية هذا المنشور، نأمل أن تكون قد تعلمت كيفية تكرار الخريطة في Java. نشجعك على ممارسة هذه الأشياء وتجربة طرق أخرى للعبور أيضًا. لا تتردد في الرجوع أو نشر الأسئلة عندما تشعر بأنك عالق. حتى ذلك الحين، تعلم سعيد!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION