CodeGym /مدونة جافا /Random-AR /LinkedHashMap في جافا
John Squirrels
مستوى
San Francisco

LinkedHashMap في جافا

نشرت في المجموعة

ما هو LinkedHashMap في جافا؟

فئة LinkedHashMap لإطار عمل المجموعات هي تطبيق Hashtable و LinkedList لواجهة الخريطة . يقوم بتخزين إدخالاته في Hashtable ويستخدم قائمة مرتبطة بشكل مزدوج داخليًا للحفاظ على ترتيب الإدراج. تحدد LinkedList ترتيب الإدراج وهو الترتيب الذي تم به إدراج المفاتيح في الخريطة . قدمت HashMap فائدة الإدراج السريع والبحث والحذف ولكن في LinkedHashMap ، يحافظ تطبيق LinkedList على ترتيب الإدراج أيضًا .LinkedHashMap في جافا - 1

ميزات LinkedHashMap

  1. أنه يحتوي على القيم على أساس المفتاح.
  2. أنه يحتوي على عناصر فريدة من نوعها.
  3. قد يحتوي على مفتاح فارغ واحد وقيم فارغة متعددة.
  4. إنه غير متزامن.
  5. يحافظ على ترتيب الإدراج مما يجعل التكرار أكثر تكلفة.

عوامل الأداء

يعتمد أداء LinkedHashMap بشكل أساسي على عاملين موضحين أدناه.

سعة

السعة تعني عدد الإدخالات التي يمكنه تخزينها. السعة الافتراضية هي 16 إذا لم يتم توفير أي معلمة. عامل التحميل يعني عامل التحميل أنه كلما تمت تعبئة HashMap بنسبة مئوية محددة يتم توفيرها كمعلمة، يتم إنشاء HashMap جديد يكون مزدوج الحجم، ويتم نقل جميع الإدخالات إلى هذا الإدخال الجديد. عامل التحميل الافتراضي لـ HashMap هو 0.75 . ومن المعروف أيضا باسم نسبة الملء .

إعلان LinkedHashMap

لإنشاء LinkedHashMap ، نحتاج أولاً إلى استيراد الحزمة، وهي java.util.LinkedHashMap .
LinkedHashMap<Key, Value> lhm = new LinkedHashMap<>(12, 0.5f);
هنا المفتاح هو نوع المفاتيح الموجودة في الخريطة. القيمة هي نوع القيم المعينة في الخريطة. 12 هي السعة مما يعني أنها ستخزن 12 إدخالاً في الخريطة. 0.5f هو عامل التحميل مما يعني أنه عند ملء 50%، سيتم إنشاء خريطة جديدة ونقل جميع القيم إلى هذه الخريطة الجديدة.

الطرق الشائعة لـ LinkedHashMap

فيما يلي قائمة ببعض الطرق الشائعة لـ LinkedHashMap .
طُرق وصف
واضح() يزيل كافة التعيينات في الخريطة.
يحتوي على قيمة (قيمة الكائن) يُرجع صحيحًا إذا قامت الخريطة بتعيين المفتاح إلى القيمة المحددة.
مجموعة الإدخال () يُرجع عرض المجموعة للتعيينات في الخريطة.
الحصول على (مفتاح الكائن) تُرجع القيمة مقابل المفتاح المحدد أو تُرجع قيمة فارغة إذا لم يتم تحديد أي مفتاح.
مجموعة المفاتيح () يُرجع عرض المجموعة للمفاتيح الموجودة في الخريطة.
قيم() يُرجع طريقة عرض المجموعة للقيم الموجودة في الخريطة.
getOrDefault(مفتاح الكائن، V defaultValue) تُرجع القيمة التي يرتبط بها المفتاح المحدد أو القيمة الافتراضية في حالة عدم وجود مفتاح مقترن.

مثال LinkedHasMap

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating a LinkedHashMap of odd numbers
        LinkedHashMap<String, Integer> oddNumbers = new LinkedHashMap<>();
        // Using the put() method
        oddNumbers.put("One", 1);
        oddNumbers.put("Three", 3);
        System.out.println("LinkedHashMap1: " + oddNumbers);

        // Creating another LinkedHashMap
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("Two", 2);
        // Using putAll() method
        numbers.putAll(oddNumbers);
        System.out.println("LinkedHashMap2: " + numbers);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());

        // Using keySet() method
        System.out.println("Keys: " + numbers.keySet());

        // Using values() method
        System.out.println("Values: " + numbers.values());

        // Using get() method
        int value1 = numbers.get("Three");
        System.out.println("Returned Number: " + value1);

        // Using getOrDefault() method
        int value2 = numbers.getOrDefault("Five", 5);
        System.out.println("Returned Number: " + value2);

        // Using remove() method
        int value = numbers.remove("Two");
        System.out.println("Removed value: " + value);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());
    }
}

انتاج |

LinkedHashMap1: {One=1, Three=3} LinkedHashMap2: {Two=2, One=1, Three=3} تعيينات المفاتيح/القيمة: [اثنان=2، واحد=1، ثلاثة=3] المفاتيح: [اثنان، واحد ، ثلاثة] القيم: [2، 1، 3] الرقم الذي تم إرجاعه: 3 الرقم الذي تم إرجاعه: 5 القيمة المحذوفة: 2 تعيينات المفاتيح/القيمة: [واحد=1، ثلاثة=3]

LinkedHashMap مقابل HashMap

دعونا نرى بعض الاختلافات بينهما، حيث يقوم كلاهما بتنفيذ واجهة الخريطة .
  1. يحتفظ LinkedHashMap بترتيب الإدراج حيث يقوم بتنفيذ القائمة المرتبطة بشكل مزدوج داخليًا.
  2. يحتاج LinkedHashMap إلى مساحة تخزين أكبر لأنه ينفذ LinkedList .
  3. فيما يتعلق بالأداء، فإن LinkedHashMap أبطأ من HashMap .

خاتمة

نأمل أن تفهم فئة LinkedHashMap في Java وطرقها المختلفة وتنفيذها. لا تتردد في التدرب والعودة عندما تحتاج إلى مزيد من المساعدة. تعلم سعيد!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION