في جافا، قاموس هي قائمة أزواج القيمة الرئيسية. يمكننا تخزين القيم واسترجاعها وإزالتها والحصول عليها ووضعها في القاموس باستخدام فئة قاموس Java. في هذا القسم سنناقش جافا قاموس فئة تخزن البيانات في أزواج ذات قيمة مفتاحية تمامًا مثل واجهة الخريطة.
فئة قاموس جافا
جافا قاموس الطبقة هي فئة الأصل مجردة من أي فئة. تنتمي إلى java.util طَرد. فئتها الفرعية المعروفة المباشرة هي جدول التجزئة فصل. مثل فئة Hashtable، تقوم أيضًا بتعيين المفاتيح للقيم. لاحظ أن كل مفتاح وقيمة عبارة عن كائن ويمكن استخدام أي كائن غير فارغ كمفتاح وكقيمة. التسلسل الهرمي لفئة القاموس هو كما يلي:
يرتبط كل مفتاح بقيمة واحدة على الأكثر، كما هو موضح في الشكل التالي. بمجرد تخزين القيمة في كائن القاموس، يمكننا استردادها باستخدام المفتاح.
الميراث في جافا
بناء الجملة:
public abstract class Dictionary extends Object
ملاحظة: الفصل عفا عليه الزمن. لذلك، قم بتنفيذ واجهة الخريطة بدلاً من توسيع الفصل.
منشئ فئة القاموس
يحتوي الفصل فقط على مُنشئ يسمى a نعل البناء.
بناء الجملة:
public Dictionary()
أساليب فئة القاموس
جميع أساليب فئة القاموس هي خلاصة . ويصف الجدول التالي الطرق.
طريقة | وصف |
---|---|
عناصر التعداد الملخص العام () | تقوم بإرجاع تعداد القيم في هذا القاموس. يقوم كائن التعداد الذي تم إرجاعه بإنشاء كافة العناصر الموجودة في الإدخالات في هذا القاموس. |
الحصول على الملخص العام V (مفتاح الكائن) | تقوم بإرجاع القيمة التي تم تعيين المفتاح إليها في هذا القاموس. يقوم بتوزيع كائن (مفتاح) في هذا القاموس. لاحظ أنه إذا كان هذا القاموس يحتوي على إدخال للمفتاح المحدد، فسيتم إرجاع القيمة المرتبطة؛ وبخلاف ذلك، يتم إرجاع قيمة فارغة. يقوم بطرح NullPointerException إذا كان المفتاح فارغًا. |
الملخص المنطقي العام هو فارغ () | تتحقق الطريقة مما إذا كان هذا القاموس لا يعين أي مفاتيح للقيمة. يتم إرجاع صحيح إذا وفقط إذا كان هذا القاموس لا يحتوي على إدخالات، وإلا فسيتم إرجاع خطأ. |
مفاتيح التعداد الملخص العام () | يقوم بإرجاع تعداد المفاتيح في هذا القاموس. يقوم كائن التعداد الذي تم إرجاعه بإنشاء كافة المفاتيح التي يحتوي هذا القاموس على إدخالات لها. |
الملخص العام V put (مفتاح K، قيمة V) | يتم استخدام الطريقة لإدراج زوج من القيمة الرئيسية في القاموس. يقوم بتعيين المفتاح المحدد للقيمة المحددة في هذا القاموس. لاحظ أنه لا يمكن أن يكون المفتاح ولا القيمة فارغة. إذا كان القاموس يحتوي بالفعل على إدخال للمفتاح المحدد، فسيتم إرجاع القيمة الموجودة بالفعل في هذا القاموس لهذا المفتاح، بعد تعديل الإدخال ليحتوي على العنصر الجديد. إذا لم يكن القاموس يحتوي بالفعل على إدخال للمفتاح المحدد، فسيتم إنشاء إدخال للمفتاح والقيمة المحددين، ويتم إرجاع القيمة null. يقوم بتوزيع المفتاح والقيمة كمعلمة. يقوم بطرح NullPointerException إذا كان المفتاح أو القيمة فارغة. |
إزالة الملخص العام V (مفتاح الكائن) | تقوم الطريقة بتوزيع المفتاح الذي نريد إزالته. يقوم بإزالة المفتاح والقيمة المرتبطة به. لاحظ أن الطريقة لا تفعل شيئًا إذا لم يكن المفتاح موجودًا في القاموس. يقوم بطرح NullPointerException إذا كان المفتاح فارغًا. |
حجم الملخص العام () | تقوم بإرجاع عدد الإدخالات (المفاتيح المميزة) في هذا القاموس. |
برامج قاموس جافا
استخدام طريقة Dictionary.put()
تقوم طريقة put() بإدراج العناصر في القاموس. يوضح البرنامج التالي نفس الشيء.
InsertElementExample.java
import java.util.*; public class InsertElementExample { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(102, 'Brisbane'); dict.put(103, 'Melbourne'); dict.put(104, 'Perth'); dict.put(105, 'Lismore'); dict.put(106, 'Mount Gambier'); dict.put(107, 'Nelson Bay'); dict.put(108, 'Canberra'); //prints keys and corresponding values System.out.println(dict); } }
انتاج:
{108=Canberra, 107=Nelson Bay, 106=Mount Gambier, 105=Lismore, 104=Perth, 103=Melbourne, 102=Brisbane, 101=Sydney}
استخدام طريقة Dictionary.size()
حجم القاموس هو عدد العناصر التي يحتوي عليها القاموس. في البرنامج التالي حجم القاموس هو 6.
DictionarySizeExample.java
import java.util.*; public class DictionarySizeExample { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(102, 'Brisbane'); dict.put(103, 'Melbourne'); dict.put(104, 'Perth'); dict.put(107, 'Nelson Bay'); dict.put(108, 'Canberra'); //prints the size of the dictionary System.out.println('The size of the dictionary is: '+dict.size()); } }
انتاج:
The size of the dictionary is: 6
استخدام طريقة Dictionary.get()
باستخدام طريقة get()، يمكننا استرداد قيمة المفتاح المحدد.
قاموسGetElement.java
import java.util.*; public class DictionaryGetElement { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(102, 'Brisbane'); dict.put(103, 'Melbourne'); dict.put(104, 'Perth'); dict.put(107, 'Nelson Bay'); dict.put(108, 'Canberra'); //gets the value of the specified key System.out.println('The value of the specified key is: '+dict.get(103)); } }
انتاج:
The value of the specified key is: Melbourne
استخدام أسلوب Dictionary.isEmpty()
يُرجع صحيحًا إذا كان القاموس فارغًا، وإلا يُرجع خطأ.
EmptyCheckExample.java
import java.util.*; public class EmptyCheckExample { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(102, 'Brisbane'); dict.put(103, 'Melbourne'); dict.put(104, 'Perth'); //checks if the dictionary is empty or not System.out.println('Is the dictionary empty? '+dict.isEmpty()); } }
انتاج:
Is the dictionary empty? false
استخدام طريقة Dictionary.remove()
تزيل الطريقة المفتاح والقيمة المقابلة التي قمنا بتحليلها في الطريقة. يتم إرجاع القيمة التي تمت إزالتها بواسطة الطريقة.
RemoveElementExample.java
import java.util.*; public class RemoveElementExample { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(108, 'Canberra'); dict.put(106, 'Mount Gambier'); dict.put(104, 'Perth'); dict.put(102, 'Brisbane'); //removes the corresponding value of the specified key System.out.println('The removed value is: '+dict.remove(106)); } }
انتاج:
The removed value is: Mount Gambier
استخدام أساليب العناصر () والمفتاح ().
RemoveElementExample.java
import java.util.*; public class IterateKeyAndValuesExample { public static void main(String args[]) { //creating a dictionary Dictionary dict = new Hashtable(); //adding values in the dictionary dict.put(101, 'Sydney'); dict.put(102, 'Brisbane'); dict.put(103, 'Melbourne'); dict.put(104, 'Perth'); dict.put(105, 'Lismore'); dict.put(106, 'Mount Gambier'); dict.put(107, 'Nelson Bay'); dict.put(108, 'Canberra'); System.out.println('Dictionary values are: '); //loop iterate over the values stored in the dictionary for(Enumeration enm = dict.elements(); enm.hasMoreElements();) { //prints the value System.out.println(enm.nextElement()); } System.out.println(' Dictionary keys are: '); //loop iterate over the keys stored in the dictionary for(Enumeration enm = dict.keys(); enm.hasMoreElements();) { //prints the keys System.out.println(enm.nextElement()); } } }
انتاج:
بيانات التعدين
Dictionary values are: Canberra Nelson Bay Mount Gambier Lismore Perth Melbourne Brisbane Sydney Dictionary keys are: 108 107 106 105 104 103 102 101
الفرق بين HashMap وفئة القاموس
جافا خريطة التجزئة يؤدي كل من فئة وفئة القاموس وظيفة مماثلة. والفرق الوحيد هو أن يقوم HashMap بتنفيذ واجهة الخريطة بينما لا تقوم فئة القاموس بذلك . وفقًا لوثائق Java، لم تعد فئة القاموس قيد الاستخدام لأنها قديمة. بدلاً من فئة القاموس، يتم استخدام فئة HashMap. حيث يمكننا القول أن HashMap هو نوع من القاموس.