مقدمة
الكلاس Hashtable
يستخدم لتخزين العناصر بشكل Key / Value حيث يتم إعطاء مفتاح لكل قيمة يتم تخزينها بداخل الـ Hashtable
.
هنا كل قيمة يتم تخزينها في كائن الـ Hashtable
يجب إعطاءها Key غير مستخدم, لأن كل Key موضوع يسمح لك بالوصول لقيمة واحدة من القيم الموجودة في كائن الـ Hashtable
.
إذاً الـ Hashtable
كأنه جدول يتألف من عامودين, الأول يحتوي المفاتيح ( Keys ) و الثاني يحتوي على القيم ( Values ).
إذاً هنا كل عنصر يضاف في الـ Hashtable
يجب أن يحتوي على كائنين, الأول يمثل المفتاح و الثاني يمثل قيمته.
مثال شامل
في المثال التالي قمنا بتعريف كائن نوعه Hashtable
, إسمه h
, ثم أدخلنا فيه 12 عنصر.
بعدها قمنا بتخزين جميع المفاتيح في كائن نوعه Enumeration
, إسمه keys
.
و قمنا أيضاً بتخزين جميع القيم في كائن نوعه Enumeration
, إسمه values
.
بعدها عرضناهم كجدول يتألف من عامودين من خلال الحلقة while
.
في الأخير قمنا بالبحث عن قيمة مفتاح أدخالناه سابقاً.
Main.java
import java.util.Hashtable; // Hashtable هنا قمنا باستدعاء الكلاس
import java.util.Enumeration; // Enumeration هنا قمنا باستدعاء الكلاس
public class Main {
public static void main(String[] args) {
// و الذي سنضع فيه كود البلد و إسمه h إسمه Hashtable هنا قمنا بتعريف كائن نوعه
Hashtable h = new Hashtable();
// كل عنصر يحتوي على كود البلد كمفتاح و إسمه كقيمة .h هنا قمنا بإضافة 12 عنصر في الكائن
h.put("+961", "Lebanon");
h.put("+962", "Jordan");
h.put("+963", "Syria");
h.put("+964", "Iraq");
h.put("+965", "Kuwait");
h.put("+966", "KSA");
h.put("+967", "Yaman");
h.put("+968", "Oman");
h.put("+970", "Palestine");
h.put("+212", "Morocco");
h.put("+281", "Libya");
h.put("+20", "Egypt");
// أي وضعنا اكواد البلاد فيه .keys بداخل الكائن h هنا قمنا بتخزين جميع مفاتيح الكائن
Enumeration keys = h.keys();
// أي وضعنا أسماء البلاد فيه .values بداخل الكائن h هنا قمنا بتخزين جميع قيم الكائن
Enumeration values = h.elements();
System.out.println("The table below contains all Codes & Countries \n");
System.out.println("---------------------");
System.out.println("Code \t | Country");
System.out.println("---------------------");
// لا يزال يحتوي على مفاتيح keys هنا أنشأنا حلقة تستمر في تكرار نفسها طالما أن الكائن
// الفكرة هنا المرور على جميع المفاتيح الموجودة و عرض كل مفتاح موجود و قيمته
while( keys.hasMoreElements() ) {
System.out.println(keys.nextElement() + "\t | " + values.nextElement());
}
System.out.println("---------------------\n");
// KSA هنا قمنا بالبحث عن إسم البلد الذي يملك الكود 996+ فكان الجواب
System.out.println("Which Country use the code +966 ?");
System.out.println(h.get("+966"));
}
}
سنحصل على النتيجة التالية عند التشغيل.
The table below contains all Codes & Countries
---------------------
Code | Country
---------------------
+281 | Libya
+966 | KSA
+965 | Kuwait
+964 | Iraq
+963 | Syria
+962 | Jordan
+961 | Lebanon
+212 | Morocco
+20 | Egypt
+970 | Palestine
+968 | Oman
+967 | Yaman
---------------------
Which Country use the code +966 ?
KSA