CodeGym /בלוג Java /Random-HE /LinkedHashMap ב-Java
John Squirrels
רָמָה
San Francisco

LinkedHashMap ב-Java

פורסם בקבוצה

מה זה LinkedHashMap ב-Java?

המחלקה LinkedHashMap של מסגרת Collections היא יישום ה-Hashtable ו- LinkedList של ממשק המפה . הוא מאחסן את הערכים שלו ב- Hashtable ומשתמש ברשימה מקושרת כפולה באופן פנימי כדי לשמור על סדר ההכנסה. LinkedList זה מגדיר את סדר ההכנסה שהוא הסדר שבו הוכנסו מפתחות למפה . ה- HashMap סיפק את היתרון של הכנסה מהירה , חיפוש ומחיקה , אך ב- LinkedHashMap היישום של LinkedList שומר גם על סדר ההכנסה. LinkedHashMap ב-Java - 1

תכונות של LinkedHashMap

  1. הוא מכיל ערכים המבוססים על מפתח.
  2. הוא מכיל אלמנטים ייחודיים.
  3. ייתכן שיהיה לו מפתח null אחד וערכי null מרובים.
  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 .
שיטות תיאור
ברור() מסיר את כל המיפויים במפה.
containsValue(ערך אובייקט) מחזירה true אם המפה ממפה את המפתח לערך שצוין.
entrySet() מחזירה את תצוגת הסט של המיפויים במפה.
get (מפתח אובייקט) מחזירה את הערך מול המפתח שצוין או null אם לא צוין מפתח.
סט מפתחות() מחזירה את תצוגת הסט של המפתחות במפה.
ערכים() מחזירה את תצוגת האוסף של הערכים במפה.
getOrDefault(מפתח אובייקט, V defaultValue) מחזירה את הערך שאליו משויך המפתח שצוין או 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} מיפוי מפתח/ערך: [Two=2, One=1, Three=3] מקשים: [Two, One , שלוש] ערכים: [2, 1, 3] מספר מוחזר: 3 מספר מוחזר: 5 ערך שהוסר: 2 מיפוי מפתח/ערך: [One=1, Three=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