הבדל מפתח – TreeSet לעומת TreeMap
מערך משמש לאחסון קבוצה של רכיבי נתונים מאותו סוג. רוב שפות התכנות תומכות ב-Arrays. למרות שמערך יכול לאחסן ערכים מרובים; יש חיסרון גדול. לאחר יצירת המערך, לא ניתן לשנות אותו. אם המתכנת הכריז על מערך של 10 אלמנטים, אז הוא לא יכול לאחסן 15 אלמנטים. כאשר המתכנת מכריז על מערך של 10 אלמנטים ומאחסן רק 5 אלמנטים, שאר הזיכרון שהוקצה הוא בזבוז. לשפות תכנות כמו Java יש אוספים לאחסון רכיבי נתונים באופן דינמי. יש מספר אוספים. אוספים עוזרים לבצע הוספה, הסרה של אלמנטים ופעולות אחרות.ממשק הבסיס ידוע בשם Collection. Set, List ו-Queue הם כמה ממשקים שמרחיבים את ממשק האוסף. מפה היא ממשק של היררכיית אוסף, אך היא אינה מרחיבה את ממשק האוסף. TreeSet היא מחלקה המיישמת את ממשק ה-Set ומאחסנת את האלמנטים בסדר עולה. TreeMap היא מחלקה המיישמת ממשק Map ומאחסנת צמדי מפתח וערכים בסדר עולה. זה ההבדל העיקרי. מאמר זה דן בהבדל בין TreeSet ל-TreeMap.
מה זה TreeSet?
The TreeSet הוא מחלקה המיישמת ממשק Set. ה-TreeSet שומר על אלמנטים ייחודיים. TreeSet מיישמת ממשק NavigableSet. הממשק הניווט מרחיב את ממשקי SortedSet, Set, Collection ו-Iterable בסדר היררכי. TreeSet מאחסן את האלמנטים בסדר עולה. אם סדר ההכנסה הוא A, C, B, ה-TreeSet יאחסן אותם בתור A, B, C. ישנן שיטות של TreeSet. שיטת ההוספה משמשת להוספת אלמנט לסט.שיטת ההסרה משמשת להסרת אלמנט שצוין. השיטה הברורה משמשת להסרת כל האלמנטים. המתודה contains מחזירה אמת אם האלמנט שצוין קיים ב-Set. אלו כמה שיטות שסופקו על ידי TreeSet. עיין בתוכנית שלהלן.
איור 01: תוכנית באמצעות TreeSet
לפי התוכנית לעיל, Treeset הוא אובייקט מסוג TreeSet. זה יכול לאחסן מחרוזות. האלמנטים מתווספים באמצעות שיטת הוספה. סדר ההכנסה הוא A, C, D ו-B. באמצעות האיטרטור, הערכים המאוחסנים מודפסים על המסך. האלמנטים מאוחסנים בסדר A, B, C, D. לכן, ה-TreeSet שומר על סדר עולה של רכיבי הסט. אם יש אלמנט נוסף בשם "D" הוא לא יודפס כי האלמנט D כבר קיים בסט. זה תמיד מאחסן אלמנטים ייחודיים.
מהי TreeMap?
TreeMap היא מחלקה המיישמת ממשק מפה. מפה תומכת בצמדי מפתח-ערך. כל מפתח, זוג ערכים הוא ערך. כל מפתח הוא ייחודי ובעל ערך תואם. שיטת containsKey משמשת למציאת מפתח ספציפי בעוד ששיטת containsValue משמשת למציאת ערך ספציפי. שיטת get משמשת כדי למצוא את הערך המתאים למפתח הנתון. שיטת ה-put משמשת לאחסון ערך עם המפתח הנתון. אפשר גם להסיר אלמנט במפתח ספציפי בשיטת ההסרה. אלו כמה שיטות נפוצות של ממשק מפה. זה עוזר לחפש, להכניס ולמחוק אלמנטים על סמך המפתח. מחלקת TreeMap מיישמת את NavigableMap. NavigableMap מרחיב את SortedMap. SortedMap מרחיב את מפה. לכן, ניתן להשתמש בשיטות של Map עם TreeMap. עיין בתוכנית שלהלן.
איור 02: תוכנית באמצעות TreeMap
לפי התוכנית לעיל, נוצר אובייקט של TreeMap. המתכנת יכול להוסיף אלמנטים באמצעות האובייקט. שיטת ה-put משמשת להוספת צמדי מפתח, ערך. שיטת get משמשת עם המפתח הספציפי כדי להביא את האלמנטים. המתכנת יכול להשתמש ב- Map. Entry כדי להדפיס את כל המפתחות והערכים. בעת התבוננות בפלט, הוא אינו שומר על הסדר שהוכנס. הוא מאחסן את האלמנטים בסדר עולה.
מהם הדמיון בין TreeSet ל-TreeMap?
- שניהם TreeSet וגם TreeMap נמצאים בהיררכיית האוסף.
- גם TreeSet וגם TreeMap שומרים על הסדר העולה.
- גם TreeSet וגם TreeMap יכולים לאחסן ולתפעל אלמנטים רבים.
מה ההבדל בין TreeSet ל-TreeMap?
TreeSet לעומת TreeMap |
|
TreeSet הוא מחלקה המיישמת את ממשק ה-Set ומאחסנת את האלמנטים בסדר עולה. | TreeMap היא מחלקה המיישמת ממשק מפה ומאחסנת צמדי מפתח וערכים בסדר עולה. |
ממשק מיושם | |
TreeSet מיישמת ממשק סט. | TreeMap מיישמת ממשק מפה. |
סיכום – TreeSet לעומת TreeMap
מערך משמש לאחסון קבוצה של אלמנטים, אבל זה לא עוזר לאחסן אלמנטים באופן דינמי. שפות תכנות כגון Java מכילות אוספים לאחסון רכיבי נתונים באופן דינמי. אוסף הוא מחלקת הבסיס בהיררכיית האוסף. הוא מורכב ממחלקות וממשקים לביצוע פעולות כגון הוספה, מחיקה של אלמנטים. סט ומפה הם שני ממשקים של היררכיית אוסף. TreeSet היא מחלקה המיישמת את ממשק ה-Set ומאחסנת את האלמנטים בסדר עולה. TreeMap היא מחלקה המיישמת ממשק Map ומאחסנת צמדי מפתח וערכים בסדר עולה. זה ההבדל בין TreeSet ל-TreeMap.