Java TreeSet

Java Treeset



TreeSet נחשב לאחד מיישומי SortedSet הבסיסיים ביותר המשתמשים בעץ כסוג האחסון העיקרי שלו. ב-TreeSet, כל ערך מאוחסן ברצף הממוין. כברירת מחדל, כל הערכים המספריים נשמרים בסדר עולה, והמחרוזות מטופלות בסדר מבוסס מילון. ה-TreeSet שומר על הסדר העולה והמבוסס על המילון בין אם צוין ההשוואה או לא. כדי ליישם נכון את ממשק ה-Set, TreeSet חייב להיות עקבי עם דומה. יתר על כן, ערכי null אינם קבילים ב-TreeSet.

דוגמה 1

נדרשת השיטה add() כדי להוסיף את האלמנטים בתוך TreeSet. האלמנט שצוין יתווסף תוך שימוש באותו רצף מיון כמו בעת יצירת TreeSet. זה לא יוסיף ערכים כפולים.









בתוך הקוד הקודם, הכנסנו את מחלקת השירות של Java כדי לגשת למחלקות ולשיטות של Java. לאחר מכן, השיטה main() סגורה בהגדרה של המחלקה 'CreatingTreeSet'. בדקנו את קוד TreeSet בתוך שיטת main() . תחילה יצרנו משתנה 'אדם' מהמחלקה TreeSet והגדרנו את ממשק TreeSet הריק במשתנה המוצהר 'persons'.



שימו לב שהוספנו רק את רכיבי המחרוזת מכיוון שסוג הנתונים של ה-TreeSet מצוין בזמן יצירת הממשק שלו. הכנסנו חמישה רכיבי מחרוזת ב-TreeSet, כאשר כל רכיב מחרוזת הוא ייחודי. לאחר מכן, עברנו כל אלמנט של TreeSet משיטת iterator() שתודפס בסדר עולה במסך הפלט.





האלמנטים שנוצרו באמצעות ממשק TreeSet מובאים כפלט בהצמדת הפלט הבאה:



דוגמה 2

לאחר יצירת ה-TreeSet, ניתן לגשת לאלמנטים באמצעות השיטה המובנית הנתמכת על-ידי TreeSet. השיטה contains() בודקת את האלמנט הספציפי ב-TreeSet. השיטה first() מאחזרת את האלמנט הראשוני של TreeSet, בעוד ששיטת last() מאחזרת את אלמנט הקצה של TreeSet.

לאחר ייבוא ​​מחלקת השירות, הגדרנו מחלקה 'AccessingTreeSet'. לאחר מכן, פרסנו את השיטה main() במחלקת Java שצוינה לגישה לרכיבי TreeSet. הכרזנו על אובייקט 'צבעים' מסוג NavigableSet בהתייחס למחלקה TreeSet. ה-TreeSet() ריק, שמתווסף עם ערכי המחרוזת על ידי הפעלת המתודה add() . כאן, הוספנו שלושה ערכי מחרוזת, השם של הצבעים השונים. לאחר מכן, ערכי TreeSet יוצגו על המסך באמצעות הצהרת הדפסה. לאחר מכן, יצרנו משתנה 'מצא' שבו אתחול המחרוזת לבדיקה. כדי לבדוק אם המחרוזת קיימת בעצים שסופקו, קראנו למתודה contains() והוספנו את המשתנה 'find' כפרמטר. השיטה Contains() מאמתת את קיומו של רכיב המחרוזת שצוין מה-TreeSet ומייצרת את התוצאות הבוליאניות. יתרה מכך, קיבלנו גם את האלמנט הראשון והאחרון ב-TreeSet מהשיטה first() ומתודה last(). שתי השיטות מייצרות את האלמנט הספציפי הממוקם במיקום הראשון והאחרון ב-TreeSet המסופק.

הבדיקה של המחרוזת המסוימת מתוך המתודה contains() מחזירה את הערך האמיתי, שמראה שאלמנט המחרוזת הוא חלק מהשיטה contains() . לאחר מכן, הערך הראשון של TreeSet והערך האחרון מוצגים גם למטה:

דוגמה 3

הגישה לאלמנט הראשון והאחרון בדוגמה הקודמת. כדי לגשת ולחסל את האלמנטים הגבוהים והנמוכים ביותר, נעשה שימוש בשיטת pollFirst() ו- pollLast(). השיטה pollFirst() משמשת כדי לאחזר ולהסיר את האלמנט הנמוך ביותר מהראשון. השיטה pollLast() מיושמת כדי לאתר ולחסל את האלמנט הגבוה ביותר מהאחרון ב-TreeSet.

התוכנית הוקמה עם מחלקת Java 'LowerAndHigherValueFromTreeSet' שבה נבנית השיטה main(). כאן, סיפקנו את ממשק TreeSet מהמחלקה TreeSet על ידי הצהרת האובייקט 'IntegerSet'. בתחילה, יצרנו TreeSet ריק שניתן להוסיף עם האלמנט על ידי שימוש בשיטת add() . הפריטים Integer נטענים לתוך TreeSet באמצעות שיטת add() .

לאחר מכן, נתנו משפט הדפסה בשיטת pollFirst() ו- pollLast(). השיטה pollFirst() מקבלת את האלמנטים הנמוכים ביותר מה-TreeSet שצוין. מצד שני, שיטת pollLast() מקבלת את האלמנט הגבוה ביותר מהאחרון ב-TreeSet.

התוצאות מתקבלות מהשיטות pollFirst() וה-polLast() שהציגו את האלמנט הנמוך והגבוה ביותר מה-TreeSet בפלט.

דוגמה 4

השיטה clear() משמשת כדי לנקות את כל האלמנטים הקיימים ב-TreeSet. ה-TreeSet הריק מוחזר ברגע שהשיטה clear() מיושמת ב-TreeSet.

המחלקה הציבורית 'ClearTreeSet' מוגדרת בשיטת main() בתוכנית הקודמת. יצרנו שם את TreeSet הריק, המוגדר במשתנה המחלקה TreeSet 'SetElements'. לאחר מכן, הכנסנו את המספרים האקראיים בעזרת שיטת add() בתוך ה-TreeSet. לאחר מכן, הדפסנו את TreeSet כדי להציג את האלמנטים שבתוכו. לאחר התצוגה, השתמשנו בשיטת clear() כדי לנקות את TreeSet.

דוגמה 5

ה-TreeSet לא יאפשר הוספת אלמנטים הטרוגניים. אם ננסה להוסיף אובייקטים הטרוגניים של המחלקה, 'classCastException' ייזרק במהלך זמן הריצה. ה-treeSet מקבל רק אובייקטים הומוגניים וניתנים להשוואה.

פרסנו את השיטה main() בתוך מחלקת Java 'HeterogenousObjectTreeSet' שבה קבענו את ממשק TreeSet. ה-TreeSet מוגדר באובייקט 'CharSet'. לאחר מכן האלמנטים מתווספים לאובייקט 'CharSet' של TreeSet. הכנסנו את האלמנטים הדומים עם ממשק StringBuffer. שימו לב שהאלמנט האחרון בתוך TreeSet הוא הטרוגני, שהוא ערך של מספר שלם. לאחר מכן, הדפסנו את האלמנטים של TreeSet כדי לקבל את התוצאות של אחזור האלמנט ההטרוגני.

התוצאות מראות שערך האינדקס הראשון של ה-TreeSet אינו מוצג, אך כל רכיבי התווים מוצגים על המסך עקב אובייקטים דומים.

סיכום

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