كيفية استخدام بنية بيانات Java TreeMap

كيفية استخدام بنية بيانات Java TreeMap

تقوم فئة Java TreeMap بتخزين البيانات في هيكل شجرة باستخدام واجهة خريطة. تعمل هذه الفئة على توسيع فئة AbstractMap ، ومثل صنفها الأصلي ، فإن TreeMap لها معلمتان من النوع. تمثل إحدى معلمات النوع المفاتيح في TreeMap ، بينما تمثل الأخرى القيم.





تخزن بنية بيانات TreeMap أزواج القيمة الرئيسية وتسمح لك بتنفيذ عمليات CRUD على هذه البيانات.





كيفية إنشاء TreeMap في جافا

تحتوي فئة TreeMap على أربعة مُنشئين يمكنك استخدامها لإنشاء كائن TreeMap جديد. المُنشئ الافتراضي هو الأكثر شيوعًا من بين الأربعة. هذا المنشئ لا يأخذ أي وسيطات وينشئ خريطة شجرة فارغة.





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

يُنشئ الكود أعلاه خريطة شجرية فارغة تسمى عملاء .

تعبئة بنية بيانات مخطط الشجرة

ال وضع() يضيف الأسلوب عنصرًا إلى كائن TreeMap. يأخذ حجتين - المفتاح وقيمته. يمكنك إضافة عناصر إلى الخريطة المتفرعة بأي ترتيب عشوائي وسيقوم هيكل البيانات بتخزينها بترتيب تصاعدي ، وفقًا لمفاتيحها.



// Populate a tree map 
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

يضيف الرمز أعلاه خمسة عملاء ، بترتيب عشوائي ، إلى خريطة شجرة العملاء.

مشاهدة افلام مجانية على الانترنت بدون تسجيل

عرض العناصر في TreeMap

تخزن فئة TreeMap بياناتها في كائن. لذلك ، لمشاهدة جميع العناصر في خريطة متفرعة ، يمكنك ببساطة طباعة كائن الخريطة المتفرعة إلى وحدة التحكم:





// View all tree map items as an object 
System.out.println(customers);

يطبع الكود أعلاه الإخراج التالي إلى وحدة التحكم:

ماذا يمكنك أن تفعل بعنوان mac لشخص ما
{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

لاحظ أن الكائن أعلاه يعرض العناصر بترتيب تصاعدي. يمكنك أيضًا عرض كل عنصر والمفتاح المقابل له باستخدام جافا للحلقة .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

يطبع الكود أعلاه الإخراج التالي إلى وحدة التحكم:

Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

تحديث العناصر في TreeMap

تسمح لك فئة TreeMap بتحديث عنصر موجود باستخدام ملف يحل محل() طريقة. هناك طريقتان للاستبدال. تأخذ الطريقة الأولى مفتاحًا موجودًا والقيمة الجديدة التي تريد تعيين المفتاح الحالي إليها.

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

يطبع الكود أعلاه الكائن التالي في وحدة التحكم:

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

كما ترون كيم براون هو الآن كيم سميث . تأخذ طريقة replace () الثانية مفتاحًا موجودًا ، والقيمة الحالية للمفتاح ، والقيمة الجديدة التي تريد تعيينها إلى المفتاح.

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

يطبع الكود أعلاه الكائن التالي في وحدة التحكم:

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

في الكائن أعلاه ميشيل نوح يستبدل جيم رايلي .

حذف العناصر من TreeMap

إذا كنت تريد إزالة عنصر واحد من الخريطة المتفرعة ، فإن ملف إزالة() الطريقة هي خيارك الوحيد. يأخذ المفتاح المرتبط بالعنصر الذي تريد إزالته ويعيد القيمة المحذوفة.

// Remove an item 
customers.remove(104);
System.out.println(customers);

يؤدي تشغيل الكود أعلاه إلى طباعة الكائن التالي إلى وحدة التحكم:

5 جيل شجرة عائلة قالب يتفوق
{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

هذه فئة جافا لديه أيضا صافي() الطريقة التي تسمح لك بحذف جميع العناصر الموجودة في الخريطة المتفرعة.

مقارنة TreeMap بفئة Java HashMap

تعد TreeMap و HashMap من أكثر فئات خرائط Java شيوعًا. كلاهما يقوم بتمديد فئة AbstractMap. تتيح هذه العلاقة لفئات TreeMap و HashMap الوصول إلى الكثير من الوظائف نفسها.

ومع ذلك ، هناك بعض الاختلافات الجديرة بالملاحظة بين هاتين الفئتين من فئات الخرائط. يستخدم TreeMap تنفيذ الشجرة باللونين الأحمر والأسود لواجهة الخريطة ، بينما يستخدم HashMap جدول تجزئة. يسمح لك HashMap بتخزين مفتاح فارغ واحد ، بينما لا يسمح لك TreeMap بذلك. أخيرًا ، تعد HashMap أسرع من TreeMap. السرعة الحسابية للأول هي O (1) بينما الثانية هي O (log (n)).