הבדל בין HashMap ל-TreeMap

תוכן עניינים:

הבדל בין HashMap ל-TreeMap
הבדל בין HashMap ל-TreeMap

וִידֵאוֹ: הבדל בין HashMap ל-TreeMap

וִידֵאוֹ: הבדל בין HashMap ל-TreeMap
וִידֵאוֹ: Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"] 2024, יוני
Anonim

הבדל מפתח - HashMap לעומת TreeMap

בתכנות, ישנם מנגנונים שונים לאיסוף נתונים. אוספים היא שיטה אחת לאחסון נתונים. שפות תכנות כגון ג'אווה משתמשות באוספים. זוהי מסגרת עם מחלקות וממשקים לאחסון ומניפולציה של קבוצה של רכיבי נתונים. במערך רגיל, יש מספר קבוע של אלמנטים לאחסון. זו מגבלה של מערכים. במקום זאת, המתכנת יכול להשתמש באוספים. ניתן לבצע פעולות כמו הכנסה, מחיקה, מיון וחיפוש באמצעות אוספים. ב-Java, ממשק המפה שייך לאוספים. המפה משמשת לייצוג נתונים בצמדי מפתח, ערך.ישנם רק מפתחות ייחודיים, ולכל אחד מהם יש ערך מתאים. HashMap ו-TreeMap הם מחלקות שמיישמות את ממשק המפה. HashMap הוא מחלקת איסוף מבוססת מפה המשמשת לאחסון צמדי מפתח וערכים שאינם שומרים על סדר מסוים ברכיבי נתונים. TreeMap היא מחלקת איסוף מבוססת מפה המשמשת לאחסון צמדי מפתח וערכים השומרים על הסדר העולה של רכיבי הנתונים. ההבדל העיקרי בין HashMap ל-TreeMap הוא ש-HashMap אינו שומר על סדר מסוים ברכיבי נתונים בעוד ש-TreeMap שומר על הסדר העולה של רכיבי הנתונים.

מה זה HashMap?

HashMap היא מחלקה המיישמת את ממשק המפה. זה מרחיב את מחלקת AbstractMap ומיישם ממשק מפה. HashMap מכיל את צמדי המפתח, הערך. כל אלמנט הוא ייחודי. קל למצוא את האלמנטים ב-HashMap באמצעות המפתח. ההכרזה על HashMap היא כדלקמן.

public class HashMap מרחיב את AbstractMap מיישמת Map, Cloneable, Serializable

ה-K מתייחס למפתח בעוד V מתייחס לערך המתאים למפתח הספציפי הזה. כל צמד מפתח, ערכים הוא ערך של HashMap.

ההבדל בין HashMap ל-TreeMap
ההבדל בין HashMap ל-TreeMap

איור 01: ממשק מפה

הנח תרחיש כדלקמן כדי להבין את HaspMap. אם שם המתכנת רוצה לאחסן קבוצה של שמות תלמידים ומספרי אינדקס מתאימים, הוא יכול להשתמש ב-HashMap. שמות התלמידים משמשים למציאת מספרי האינדקס. לכן, שמות התלמידים הם המפתחות ואילו מספרי אינדקס הם הערכים.

ההבדל בין HashMap ל-TreeMap _איור 02
ההבדל בין HashMap ל-TreeMap _איור 02

איור 02: תוכנית HashMap באמצעות Java

לפי התוכנית לעיל, נוצר אובייקט של HashMap.אז המתכנת יכול להוסיף אלמנטים באמצעות האובייקט הזה. ניתן להכניס ערכים בשיטת put. כדי להביא את הערכים, על המתכנת להשתמש בשיטת get עם המפתח. בעת שימוש ב-studentList.get(“150”); זה ידפיס את השם המתאים לאינדקס הזה שהוא אן. אם המתכנת רוצה לקבל את כל הערכים, אז הוא יכול להשתמש ב- Map. Entry כדי להדפיס את כל המפתחות והערכים. כאשר מתבוננים בפלט, ניתן לראות ש-HashMap אינו שומר על סדר מסוים. זה לא מדפיס את האלמנטים לפי הסדר שהוכנס. האלמנטים מודפסים בסדר אקראי.

מהי TreeMap?

The TreeMap היא מחלקה ב-Java המיישמת את ממשק המפה. בדומה ל- HashMap, הוא משמש גם לאחסון צמדי מפתח, ערכים אך בסדר עולה. TreeMap מיישמת את NavigableMap ו- NavigableMap מרחיבה את SortedMap ו- SortedMap מרחיבה את המפה. כל אלמנט הוא ייחודי. ההכרזה על TreeMap היא כדלקמן.

public class TreeMap מרחיב את AbstractMap מיישמת NavigableMap, Cloneable, Serializable

ה-K מתייחס למפתח בעוד V מתייחס לערך המתאים למפתח הספציפי הזה. כל צמד מפתח, ערכים הוא ערך של TreeMap.

ההבדל העיקרי בין HashMap ל-TreeMap
ההבדל העיקרי בין HashMap ל-TreeMap

איור 03: תוכנית TreeMap באמצעות Java

לפי התוכנית לעיל, נוצר אובייקט של TreeMap. אז המתכנת יכול להוסיף אלמנטים באמצעות האובייקט הזה. ניתן להכניס ערכים בשיטת put. כדי להביא את הערכים, על המתכנת להשתמש בשיטת get עם המפתח. בעת שימוש ב-studentList.get(“150”); זה ידפיס את השם המתאים לאינדקס הזה שהוא אן. אם המתכנת רוצה לקבל את כל הערכים, אז הוא יכול להשתמש ב- Map. Entry כדי להדפיס את כל המפתחות והערכים. כאשר מתבוננים בפלט, ניתן לראות ש-TreeMap שומר על סדר מסוים. האלמנטים מודפסים בסדר עולה.

מהם הדמיון בין HashMap ל-TreeMap?

  • הן HashMap והן TreeMap מיישמות ממשק מפה.
  • הן HashMap והן TreeMap יכולות לאחסן ולתפעל אלמנטים רבים.
  • הן HashMap והן TreeMap מכילים צמדי מפתח וערכים.
  • גם HashMap וגם TreeMap יכולים להיות בעלי ערכי אפס רבים.
  • אין הגבלה למספר האלמנטים שניתן לאחסן גם ב-HashMap וגם ב-TreeMap.

מה ההבדל בין HashMap ל-TreeMap?

HashMap לעומת TreeMap

A HashMap היא מחלקת איסוף מבוססת מפה המשמשת לאחסון צמדי מפתח וערכים שאינם שומרים על סדר מסוים ברכיבי נתונים. A TreeMap היא מחלקת איסוף מבוססת מפה המשמשת לאחסון צמדי מפתח וערכים אשר שומרת על הסדר העולה של רכיבי הנתונים.
הזמנה
The HashMap לא שומר על הסדר. The TreeMap שומרת על הסדר העולה.
מפתח אפס
The HashMap יכול להכיל מפתח null אחד. ל-TreeMap לא יכול להיות מפתח null.
ביצועים
HashMap מהיר יותר מ-TreeMap. TreeMap איטית יותר מ-HashMap.

סיכום – HashMap לעומת TreeMap

שפות תכנות כגון Java מכילות את מסגרת האוסף. במערכים, יכול להיות מספר קבוע של אלמנטים. לכן, יש לאתחל את גודל המערך בהתחלה. באוספים, המתכנת יכול לאחסן אלמנטים רבים לפי הצורך.אין כמות ספציפית לאחסון. המפה היא ממשק שייך למסגרת אוסף. HashMap היא מחלקת איסוף מבוססת מפה המשמשת לאחסון צמדי מפתח וערכים שאינם שומרים על סדר מסוים ברכיבי נתונים. TreeMap היא מחלקת איסוף מבוססת מפה המשמשת לאחסון צמדי מפתח וערכים אשר שומרת על הסדר העולה של רכיבי הנתונים. מאמר זה דן בהבדל בין HashMap ל-TreeMap המיישמת את ממשק המפה. ההבדל בין HashMap ל-TreeMap הוא ש-HashMap אינו שומר על סדר מסוים ברכיבי נתונים בעוד ש-TreeMap שומר על הסדר העולה של רכיבי הנתונים.

מוּמלָץ: