لماذا العناصر في Hashtable لم تظهر بنفس الترتيب الذي وضِعت فيه؟
السلام عليكم.
ليس لدي مشكلة في فهم الكود التالي و لكنني أريد معرفة سبب ظهور عناصر الكائن Hashtable
بترتيب مختلف في النتيجة.
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"));
}
}
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
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
لماذا لم تظهر بنفس الترتيب الذي كتب فيه الكود كالتالي؟
"+961", "Lebanon"
"+962", "Jordan"
"+963", "Syria"
"+964", "Iraq"
"+965", "Kuwait"
"+966", "KSA"
"+967", "Yaman"
"+968", "Oman"
"+970", "Palestine"
"+212", "Morocco"
"+281", "Libya"
"+20", "Egypt"
"+961", "Lebanon"
"+962", "Jordan"
"+963", "Syria"
"+964", "Iraq"
"+965", "Kuwait"
"+966", "KSA"
"+967", "Yaman"
"+968", "Oman"
"+970", "Palestine"
"+212", "Morocco"
"+281", "Libya"
"+20", "Egypt"