كيفية إزالة والوصول إلى عناصر ConcurrentHashMap في Java؟

Kyfyt Azalt Walwswl Aly Nasr Concurrenthashmap Fy Java



ال ' ConcurrentHashMap 'class هي النسخة المحسنة من HashMap التقليدية. يوفر الكثير من الفوائد للمبرمج مثل توفير الكثير من الوقت وسهولة أكبر وتعزيز المرونة. يمكنه أداء مهام متعددة جنبًا إلى جنب في نفس الوقت ، ولكن بالنسبة للترقيات المتعددة لقيمة العقد ، يتم إجراء ترقية واحدة فقط في كل مرة.

توضح هذه المقالة إجراء إزالة والوصول إلى عناصر ConcurrentHashMap في Java.

كيفية إزالة عناصر ConcurrentHashMap في جافا؟

يمكن إزالة العناصر المحددة من ' ConcurrentHashMap 'من خلال' يزيل() ' طريقة. لإزالة جميع العناصر مرة واحدة ، فإن ' واضح() 'الطريقة هي أفضل خيار للاختيار.







هناك أيضًا نوعان مختلفان من طريقة 'remove ()':



  • ال ' إزالة (مفتاح) 'يحذف الكيان الذي يحتوي على' مفتاح 'من' ConcurrentHashMap '.
  • ال ' إزالة (مفتاح ، قيمة) 'يحذف الكيان الذي حدد' مفتاح 'على طول' قيمة 'من' ConcurrentHashMap '.

قم بزيارة كتلة التعليمات البرمجية أدناه للحصول على شرح أفضل:



يستورد java.util.concurrent.ConcurrentHashMap ؛
فصل جذر
{
عام ثابتة فارغ رئيسي ( خيط [ ] أرجس ) // إنشاء طريقة () الرئيسية
{ // إعلان ConcurrentHashMap
فريق ConcurrentHashMap = جديد ConcurrentHashMap ( ) ؛
فريق. يضع ( 'ثور' و 2 ) ؛
فريق. يضع ( 'غريب' و 4 ) ؛
فريق. يضع ( 'هوك' و 6 ) ؛
نظام . خارج . println ( 'ConcurrentHashMap:' + فريق ) ؛

int قيمة = فريق. يزيل ( 'غريب' ) ؛
نظام . خارج . println ( 'القيمة ' + قيمة + ' تم حذفه' ) ؛
نظام . خارج . println ( 'ConcurrentHashMap:' + فريق ) ؛

منطقي نتيجة = فريق. يزيل ( 'هوك' و 6 ) ؛
نظام . خارج . println ( 'هل تمت إزالة الإدخال {Hawkeye = 6}؟ + نتيجة ) ؛
نظام . خارج . println ( 'تم تحديث ConcurrentHashMap:' + فريق ) ؛

فريق. واضح ( ) ؛
نظام . خارج . println ( 'تم تحديث ConcurrentHashMap:' + فريق ) ؛

}
}

وصف كتلة التعليمات البرمجية أعلاه:





  • أولاً ، 'خريطة ConcurrentHashMap' المسماة ' فريق '، ثم يتم إدخال البيانات الوهمية بداخله باستخدام' يضع ' طريقة.
  • بعد ذلك ، ' يزيل() 'والمفتاح' غريب 'يتم تمريره إليه. تزيل هذه الطريقة الكيان من الخريطة الذي يحتوي على مفتاح 'غريب'.
  • بالإضافة إلى ذلك ، اعرض العناصر المتبقية من الخريطة عبر 'ConcurrentHashMap'.
  • الآن ، مرر ' مفتاح 'وما يقابل' قيمة 'إلى' يزيل() 'لحذف كيان من' ConcurrentHashMap 'له مفتاح وقيمة معينة.
  • بعد ذلك ، اعرض 'ConcurrentHashMap' لترى الفرق بصريًا.
  • في النهاية ، استخدم ' واضح() 'لحذف جميع العناصر الموجودة داخل' ConcurrentHashMap '. اعرض أيضًا 'ConcurrentHashMap' على وحدة التحكم في النهاية.

بعد نهاية مرحلة التجميع:



تُظهر اللقطة العناصر التي تمت إزالتها من ConcurrentHashMap.

كيفية الوصول إلى عناصر ConcurrentHashMap في جافا؟

عناصر ' ConcurrentHashMap 'يمكن الوصول إليه باستخدام مجموعات متعددة من الأساليب. المجموعة الأولى تضم ' مجموعة دخول () '،' مجموعة المفاتيح () ' و ' قيم() ' طُرق. يتم استخدامها لاسترداد جميع العناصر دفعة واحدة. باستخدام الطرق المذكورة أعلاه ، يمكن للمبرمج اختيار استرداد جميع ' مفاتيح '،' قيم ' او كلاهما ' مفتاح / قيمة 'تعيين الخريطة.

قم بزيارة الكود أدناه لفهم التطبيق العملي للطرق المذكورة أعلاه:

يستورد java.util.concurrent.ConcurrentHashMap ؛

فصل رئيسي {
عام ثابتة فارغ رئيسي ( خيط [ ] أرجس ) // إنشاء طريقة () الرئيسية
{ // إعلان ConcurrentHashMap
فريق ConcurrentHashMap = جديد ConcurrentHashMap ( ) ؛
فريق. يضع ( 'ثور' و 2 ) ؛
فريق. يضع ( 'غريب' و 4 ) ؛
فريق. يضع ( 'هوك' و 6 ) ؛
فريق. يضع ( 'الفهد الأسود' و 8 ) ؛
نظام . خارج . println ( 'ConcurrentHashMap:' + فريق ) ؛
نظام . خارج . println ( 'استرداد المفتاح والقيم:' + فريق. مجموعة الدخول ( ) ) ؛
نظام . خارج . println ( 'استرداد المفاتيح:' + فريق. مجموعة المفاتيح ( ) ) ؛
نظام . خارج . println ( 'استرداد القيم:' + فريق. قيم ( ) ) ؛
}
}

وصف كتلة التعليمات البرمجية أعلاه:

  • أولاً ، أنشئ 'ConcurrentHashMap' باسم ' فريق 'وإدراج عناصر متعددة فيه باستخدام' يضع() ' طريقة.
  • بعد ذلك ، اعرض 'ConcurrentHashMap' على وحدة التحكم باستخدام الزر ' out.println () ' طريقة.
  • ثم استخدم ' مجموعة دخول () 'لاسترداد جميع البيانات الموجودة على الخريطة.
  • بعد ذلك ، استخدم ' مجموعة المفاتيح () 'لاسترداد المفاتيح فقط من الخريطة.
  • في النهاية ، استخدم ' قيم() 'لاسترداد القيم المرتبطة بكل مفتاح فقط. هذا يعيد القيم فقط في التسلسل.

بعد تنفيذ الكود أعلاه:

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

الآن ، المجموعة الثانية تشمل ' يحصل() ' و ' getOrDefault () ' طُرق. تُستخدم هذه الطرق لاسترداد ' مفاتيح ' من ' ConcurrentHashMap '. على سبيل المثال ، قم بزيارة كتلة التعليمات البرمجية أدناه:

يستورد java.util.concurrent.ConcurrentHashMap ؛
فصل رئيسي {
عام ثابتة فارغ رئيسي ( خيط [ ] أرجس ) // إنشاء طريقة () الرئيسية
{ // إعلان ConcurrentHashMap
فريق ConcurrentHashMap = جديد ConcurrentHashMap ( ) ؛
فريق. يضع ( 'ثور' و 2 ) ؛
فريق. يضع ( 'غريب' و 4 ) ؛
فريق. يضع ( 'هوك' و 6 ) ؛
فريق. يضع ( 'الفهد الأسود' و 8 ) ؛
نظام . خارج . println ( 'استخدام getOrDefault ():' + القيمة 2 ) ؛

int القيمة 1 = فريق. يحصل ( 'هوك' ) ؛
نظام . خارج . println ( 'المفتاح المسترد للقيمة المحددة هو:' + القيمة 1 ) ؛
int القيمة 2 = فريق. getOrDefault ( 'رومانوف' و 10 ) ؛
نظام . خارج . println ( 'ConcurrentHashMap:' + فريق ) ؛
}
}

شرح الكود أعلاه:

  • استخدم نفس ' ConcurrentHashMap 'الذي تم إنشاؤه في كتلة التعليمات البرمجية أعلاه.
  • بالإضافة إلى ذلك ، قم بتطبيق ' يحصل() 'وتمرير القيمة التي سيتم استرداد مفتاحها داخل أقواسها.
  • علاوة على ذلك ، فإن استخدام ' getOrDefault () 'الطريقة التي تأخذ معلمتين / قيمتين ، القيمة والمفتاح الافتراضي. إذا تم العثور على الكائن المحدد داخل الخريطة ، فسيتم استرداد المفتاح المقابل. وإذا لم يتم العثور على القيمة المحددة ، فسيتم استخدام المفتاح الافتراضي.
  • بعد ذلك ، قم بتخزين نتائج كلتا الطريقتين في متغيرات وعرضها على وحدة التحكم لأغراض التصور.

بعد تنفيذ كتلة الكود أعلاه:

تعرض اللقطة أعلاه المفاتيح المتعلقة بالقيم التي تم استردادها وطباعتها على وحدة التحكم.

خاتمة

لإزالة / حذف عناصر محددة من ' ConcurrentHashMap ' ال ' يزيل() يمكن استخدام طريقة ”. باستخدامه ، يمكن للمبرمج حذف عنصر يحتوي على ' مفتاح 'أو المقابلة' قيمة '. مع استخدام ' واضح() '، يتم حذف كل عنصر موجود على الخريطة مرة واحدة. للوصول ، ' مجموعة دخول () '،' مجموعة المفاتيح () ' و ' قيم() 'الطرق المستخدمة. يمكنهم استرداد كل ' مفاتيح / قيم '،' مفاتيح '، و ' قيم ' من ' ConcurrentHashMap ' ذات مرة. لاسترداد مفاتيح محددة فقط ، فإن ' يحصل ' و ' getOrDefault 'الطرق المستخدمة.