HashMap (أو HashTable) عبارة عن بنية بيانات تسمح بالوصول السريع إلى البيانات باستخدام أزواج المفتاح والقيمة. تمد فئة Java HashMap الامتداد خلاصةالخريطة class وتنفذ واجهة Map ، مما يتيح لها الوصول إلى الكثير من العمليات. تحتوي HashMaps على معلمتين من النوع — K و V ، حيث يخزن K المفاتيح ويخزن V القيم في كل HashMap.
يتيح لك HashMap تعيين المفاتيح لقيمة معينة وتخزين العناصر بترتيب عشوائي. في هذه المقالة ، ستتعلم كيفية استخدام فئة HashMap من Java لتخزين البيانات واستردادها وتحديثها وحذفها.
إنشاء Java HashMap
تحتوي فئة Java HashMap على أربعة مُنشئين. المُنشئ الافتراضي هو الأكثر شيوعًا ، فهو يسمح لك بإنشاء HashMap فارغ بسعة افتراضية تبلغ 16.
يستوردجافا.util.خريطة التجزئة;
عامصف دراسيرئيسي{
عامثابتةفارغرئيسي(سلسلة [] args){
// إنشاء HashMap
خريطة التجزئة<عدد صحيح ، سلسلة> FruitMap = خريطة HashMap جديدة<عدد صحيح ، سلسلة>();
}
}
ال فئة جافا أعلاه يستخدم مُنشئ HashMap الافتراضي لإنشاء بنية بيانات تسمى الفواكه. سيخزن كائن FruitsMap البيانات التي تحتوي على مفتاح عدد صحيح وقيمة سلسلة. ومع ذلك ، نظرًا لأن فئة HashMap تنفذ واجهة الخريطة ، فيمكنها تخزين قيمة فارغة في حقل المفتاح أو حقل القيمة أو كليهما.
تخزين البيانات في HashMap
يمكنك إجراء عدة عمليات باستخدام فئة HashMap. ال ضع (مفتاح K ، قيمة V) الطريقة هي من بين أكثر طرقها شيوعًا ، وهي تتيح لك تخزين البيانات باستخدام زوج من المفاتيح والقيمة ، حيث يتم تعيين كل مفتاح إلى قيمة.
يستوردجافا.util.خريطة التجزئة;
عامصف دراسيرئيسي{
عامثابتةفارغرئيسي(سلسلة [] args){
// إنشاء HashMap
خريطة التجزئة<عدد صحيح ، سلسلة> FruitMap = خريطة HashMap جديدة<عدد صحيح ، سلسلة>();
// إضافة عناصر إلى HashMap
ثمار خريطة الخرج (3 ،"كُمَّثرَى");
FruitMap.put (6 ،"مانجو");
ثمار خريطة الإدخال (7 ،"وظيفة محترمة");
ثمار خريطة الإدخال (4 ،"تفاحة");
ثمار خريطة الخرج (1 ،"البرتقالي");
ثمار خريطة الإدخال (5 ،"التوت");
ثمار خريطة الإدخال (2 ،"شمام");
}
}
تستخدم الفئة المحدثة أعلاه طريقة put () لإضافة العديد من الفواكه ومفتاحها إلى بنية بيانات ثمار خريطة الفاكهة الحالية. من المهم ملاحظة أن الكود أعلاه يضيف البيانات إلى الخريطة بشكل عشوائي. ستصبح هذه التفاصيل مفيدة عند بدء قراءة البيانات من HashMap.
قراءة البيانات من HashMap
هناك عدة طرق لقراءة البيانات من HashMap. تعتمد الطريقة التي تستخدمها على الطريقة التي تريد أن تظهر بها البيانات أو حتى نوع البيانات التي تريد استردادها.
استرجع كائن HashMap
إذا كنت ترغب في استرداد البيانات ككائن ، يمكنك ببساطة الوصول إلى كائن HashMap ، والذي في المثال أدناه هو ثمار خريطة.
// عرض جميع العناصر ككائن
نظام.خارج.println(الفواكه);
بإضافة سطر الكود أعلاه إلى الفئة الرئيسية ، يطبع الإخراج التالي في وحدة التحكم:
{1 = برتقال ، 2 = شمام ، 3 = كمثرى ، 4 = تفاح ، 5 = توت ، 6 = مانجو ، 7 = برقوق}
على الرغم من إضافة كل قيمة بشكل عشوائي إلى HashMap ، سترى من الإخراج أن HashMap يخزن القيم بترتيب تصاعدي ، بناءً على المفتاح المخصص لكل قيمة. هذه ميزة تضع HashMaps في مقدمة هياكل البيانات الأخرى مثل بنية بيانات المصفوفة التي تدعم التخزين الخطي فقط.
استرجع جميع البيانات بشكل فردي
إذا كنت ترغب في استرداد جميع البيانات بشكل فردي ، فيمكنك استخدام ملحق إلى عن على الطريقة التي تسمح لك بالمرور عبر HashMap وطباعة كل قيمة والمفتاح المقابل لها. تستخدم هذه الطريقة واجهة الخريطة التي تنفذها فئة HashMap.
// عرض جميع العناصر باستخدام مكرر
لـ (HashMap. دخول<عدد صحيح ، سلسلة> الفاكهة: fruitMap.entrySet ())
{
System.out.println ("مفتاح: " + Fruit.getKey () + " قيمة: " + fruit.getValue ()) ؛
}
ستؤدي إضافة الطريقة أعلاه إلى التعليمات البرمجية الخاصة بك إلى طباعة الإخراج التالي في وحدة التحكم الخاصة بك:
المفتاح: 1 القيمة: برتقالي
المفتاح: 2 القيمة: شمام
المفتاح: 3 القيمة: الكمثرى
المفتاح: 4 القيمة: التفاح
المفتاح: 5 القيمة: التوت
المفتاح: 6 القيمة: مانجو
المفتاح: 7 القيمة: البرقوق
استرجع قيمة محددة
تحتوي فئة HashMap على ملف احصل على() الأسلوب الذي يأخذ مفتاحًا ويعيد القيمة المعينة لهذا المفتاح.
// إحضار عنصر واحد
نظام.خارج.println(الفواكه.احصل على(4));
يقوم سطر الكود أعلاه بطباعة الإخراج التالي في وحدة التحكم:
تفاحة
تحديث البيانات في HashMap
بعد إنشاء كائن HashMap وتعبئته ، يمكنك استخدام ملحق يحل محل() طريقة لتحديث أي عنصر في الخريطة. تأخذ طريقة الاستبدال () وسيطتين أو ثلاث. تأخذ طريقة الاستبدال الأولى () المفتاح المرتبط بالعنصر الحالي ، جنبًا إلى جنب مع القيمة الجديدة التي تريد تعيينها إليه.
// استبدال عنصر واحد
FruitMap.replace (4 ، "العنب");
نظام.خارج.مطبعة(الفواكه);
يؤدي تنفيذ الكود أعلاه إلى طباعة الكائن التالي في وحدة التحكم:
{1 = برتقال ، 2 = شمام ، 3 = كمثرى ، 4 = عنب ، 5 = توت ، 6 = مانجو ، 7 = برقوق}
كما ترى من الكائن أعلاه ، فإن "Grapes" يرمز إلى 4 ، والتي تم تعيينها مسبقًا إلى "Apple".
تأخذ طريقة replace () الثانية المفتاح المرتبط بالعنصر الحالي والعنصر الحالي وقيمة الاستبدال.
// استبدال عنصر واحد
FruitMap.replace (4 ، "تفاحة", "العنب");
نظام.خارج.مطبعة(الفواكه);
يطبع الكود أعلاه الكائن التالي في وحدة التحكم:
{1 = برتقال ، 2 = شمام ، 3 = كمثرى ، 4 = عنب ، 5 = توت ، 6 = مانجو ، 7 = برقوق}
حذف البيانات من HashMap
يمكنك إما حذف عنصر معين من HashMap الخاص بك باستخدام ملف إزالة() طريقة أو حذف جميع البيانات باستخدام صافي() طريقة. تأخذ طريقة remove () إما وسيطة واحدة أو اثنتين. تأخذ طريقة الإزالة الأولى المفتاح المرتبط بالقيمة التي تريد إزالتها:
// حذف عنصر واحد
الفواكه.إزالة(5);
نظام.خارج.println(الفواكه);
يطبع الكود أعلاه الكائن التالي في وحدة التحكم:
{1 = برتقال ، 2 = شمام ، 3 = كمثرى ، 4 = تفاح ، 6 = مانجو ، 7 = برقوق}
يُظهر الكائن المحدث أن العنصر الذي يحتوي على زوج القيمة الرئيسية 5 و "التوت" لم يعد جزءًا من FruitsMap. تأخذ طريقة remove () الثانية مفتاحًا والقيمة التي تعينها.
// حذف عنصر واحد
FruitMap.remove (5 ، "التوت");
نظام.خارج.println(الفواكه);
يطبع الكود أعلاه أيضًا الكائن التالي في وحدة التحكم:
{1 = برتقال ، 2 = شمام ، 3 = كمثرى ، 4 = تفاح ، 6 = مانجو ، 7 = برقوق}
لا تأخذ الطريقة clear () أي وسيطات وتعيد الفراغ.
الفواكه.صافي();
نظام.خارج.println(الفواكه);
يؤدي تنفيذ الكود أعلاه إلى طباعة الكائن الفارغ التالي في وحدة التحكم:
{}
الآن يمكنك تنفيذ عمليات CRUD على Java HashMap
تعد HashMaps واحدة من العديد من هياكل البيانات الشائعة التي تحتاج إلى معرفتها. تعلمك هذه المقالة كيفية تنفيذ عمليات CRUD على Java HashMaps. HashMap هي بنية بيانات مفيدة للغاية ، وتتمثل نقطة بيعها الرئيسية في أنها واحدة من أكثر هياكل البيانات كفاءة ، نظرًا لسرعة الوصول إليها. ومع ذلك ، فهي أيضًا مريحة جدًا للاستخدام ، لأنها تتيح التخزين العشوائي.