إعلان
تعلم الآن

لماذا العناصر في 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"

إجابات 1

أضف إجابة

يجب تسجيل الدخول حتى تتمكن من إضافة إجابة أو رد.
إعلان
دورة قواعد بيانات MySQL في هذه الدورة ستتعلم أساسيات قواعد البيانات و أوامر SQL، العلاقات (Join) بين الجداول، Normalization مع تطبيق مشروع متكامل. سعر الدورة الآن هو 20 ريال سعودي فقط بدلاً من 600 ريال
سعر الدورة الآن هو 20 ريال سعودي فقط بدلاً من 600 ريال
تعلم الآن

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة