מדוע אנו משתמשים ב-TreeMap ב-Java?
מדוע אנו משתמשים ב-TreeMap ב-Java?

וִידֵאוֹ: מדוע אנו משתמשים ב-TreeMap ב-Java?

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

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

השאלה היא גם איך פועלת TreeMap?

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

באופן דומה, מדוע HashMap מהיר יותר מ-TreeMap? הוא מספק ביצועים של O(1), בעוד מפת עץ מספק ביצועים של O(log(n)) להוספה, חיפוש והסרה של פריטים. לָכֵן, מפת גיבוב הוא בדרך כלל מהר יותר . א מפת עץ משתמש בזיכרון בצורה יעילה יותר ולכן הוא יישום מפה טוב עבורך אם אינך בטוח בכמות האלמנטים שיש לאחסן בזיכרון.

אנשים גם שואלים, האם TreeMap משתמש בגיבוב?

TreeMap הוא איטי בהשוואה ל-HashMap מכיוון שהוא מספק את הביצועים של O(log(n)) עבור רוב הפעולות כמו add(), remove() ו- contains(). כיתת HashMap שימושים ה בְּלִיל שולחן. מפת עץ כְּלַפֵּי פְּנִים שימושים עץ אדום-שחור, אשר הוא עץ חיפוש בינארי המאזן את עצמו. השיטה equals() של מחלקה Map עוקפת אותה.

האם TreeMap ממוין?

הערכים ב-a מפת עץ הם תמיד מְמוּיָן מבוסס על הסדר הטבעי של המפתחות, או על בסיס Comparator מותאם אישית שאתה יכול לספק בזמן יצירת ה- מפת עץ . מפת עץ לא יכול להכיל את מפתח null. עם זאת, זה יכול להיות ערכי null. מפת עץ אינו מסונכרן.

מוּמלָץ: