لماذا العناصر في 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")); } }
نتيجة الكود:
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"