HashSet בג'אווה הוא אחד ההיבטים החשובים ביותר של . הוא משמש בדרך כלל לאחסון ערכים ייחודיים בצורה לא מסודרת. דרך המאמר של מאמר זה ב- HashSet בג'אווה, אתן לך הדרכה מלאה לגבי מהו בדיוק HashSet וכיצד תוכל להשתמש בו ביישום שלך.
להלן הנושאים המכוסים במאמר זה:
- HashSet בג'אווה
- Java HashSet לעומת HashMap
- היררכיית HashSet
- בוני מחלקת java.util.HashSet
- שיטות java.util.HashSet Class
- יישום HashSet בתוכנית Java
בוא נתחיל בהבנה ראשית מה הם HashSet בג'אווה.
דוגמה לארגומנטים של שורת הפקודה java
HashSet בג'אווה
java.util.HashSet מעמד הוא חבר במסגרת אוספי Java אשריורש את מחלקת AbstractSet ו-מיישם אתמַעֲרֶכֶת מִמְשָׁק . הוא מיישם במרומז hashtable ליצירה ואחסון של אוסף של אלמנטים ייחודיים. Hashtable אינו אלא מופע של מחלקת HashMap המשתמשת במנגנון hashing לאחסון המידע בתוך HashSet.
Hashing הוא תהליך ההמרה של תוכן המידע לערך ייחודי הידוע יותר בשם קוד hash. קוד hash זה משמש לאינדקס של הנתונים המשויכים למפתח. כל תהליך הפיכת מפתח המידע לקוד hashcode מבוצע באופן פנימי.
עכשיו להבנה טובה יותר של HashSet בג'אווה, תן לי לרשום כמה מהתכונות שלו:
- HashSet בג'אווה אינו מאפשר ערכים כפולים.
- זה יכול להכיל ערכי null.
- HashSet אינו פועל לפי סדר ההכנסה לאחסון הנתונים אלא עושה שימוש בקוד hash לאינדקס הערכים בתוכו.
- זה לא מסונכרן מה שהופך אותו באופן אוטומטי ללא חוט.
- מחלקת HashSet מיישמת גם Cloneable ו-ממשקים הניתנים לסידור.
עכשיו שאתה מודע למה בדיוק זה HashSet בג'אווה, בואו נמשיך הלאה עם מאמר זה ונמנע את ההבדלים בין HashMap ל- HashSet בג'אווה.
Java HashSet לעומת HashMap
HashSet | מפת גיבוב |
יישומיםjava.util.הגדר ממשק | יישומיםjava.util.Map |
שומר נתונים כאובייקטים | מאחסן נתונים בצורה של צמד ערך מפתח |
HashSet דורש רק פרמטר אחד לצורך אתחול האובייקט שלו | זה דורש שני פרמטרים (מפתח, ערך) לצורך אתחול האובייקט שלו |
אינו מאפשר אלמנטים כפולים | אינו מאפשר מפתחות כפולים אך ניתן לאחסן ערכים כפולים |
מאפשר ערך null יחיד | מאפשר מפתח null יחיד ומספר כלשהו של ערכי null |
שימוש ב- HashSet להוסיף ()שיטה להוספה או לאחסון נתונים | HashMap השתמש בשיטת put () לאחסון נתונים |
עכשיו שיש לכם הבחנה ברורה בין HashMap ל- HashSet, בואו נתמקד שוב ב- HashSet ונצלול עמוק יותר לתוכו. בחלק הבא של מאמר זה אציג בפניכם את ההיררכיה המלאה של HashSet בג'אווה.
היררכיית HashSet בג'אווה
כפי שניתן לראות מהתרשים שלהלן,מחלקת HashSet מיישמת את ממשק ה- Set. ממשק ה- Set יורש עוד יותר את ממשק ה- Collection שמרחיב בסופו של דבר את ממשק ה- Iterable בסדר היררכי.
קוד סדרת פיבונאטי בג'אווה
עכשיו, קדימה עם מאמר HashSet זה ב- Java, בואו נבדוק את השונים בונים נתמך על ידי מעמד זה.
בוני מחלקת java.util.HashSet
בּוֹנֶה | תיאור |
HashSet () | זהו קונסטרוקטור ברירת המחדל של מחלקת HashSet |
HashSet (קיבולת int) | קונסטרוקטור זה משמש לאתחול הקיבולת הראשונית של סט החשיש. הקיבולת יכולה לצמוח באופן דינמי בתוספת אלמנטים חדשים |
HashSet (קיבולת int, קיבולת float load) | קונסטרוקטור זה משמש לאתחול הקיבולת הראשונית של סט החשיש יחד עם קיבולת העומס |
HashSet (אוסף ג) | בונה זה משמש לאתחולערכת החשיש באמצעות האלמנטים מתוך אוסף ג |
אלה היו ארבעת הבונים של כיתת HashSet ב . בואו עכשיו נגלה מה הם השונים מוגדר ב- Java HashSet.
שיטות java.util.HashSet Class
שיטה | תיאור |
הוסף בוליאני (אובייקט אובייקט) | שיטה זו מסייעת בהוספת אלמנט שצוין ל- HashSet רק אם הוא אינו קיים |
בטל ברור () | שיטה זו מסייעת בהסרת כל האלמנטים מ- HashSet |
שיבוט אובייקט () | שיטה זו מחזירה עותק רדוד של מופע HashSet במקום שיבוטים של רכיבי HashSet |
מכיל בוליאני (אובייקט o) | שיטה זו מחזירה אמת אם האלמנט שעבר קיים בתוך HashSet |
בוליאני הוא ריק () | שיטה זו מחזירה אמת במקרה שה HashSet ריק |
איטרטור איטרטור () | שיטה זו מחזירה איטרטור על פני האלמנטים הקיימים ב- HashSet |
הסר בוליאני (אובייקט o) | שיטה זו מסייעת בהסרת האלמנט שצוין מ- HashSet אם הוא קיים |
גודל int () | שיטה זו מחזירה את המספר הכולל של האלמנטים הקיימים ב- HashSet |
יחד עם השיטות המפורטות לעיל, מחלקת HashSet בג'אווה מכילה גם את ממעמדי העל שלו.
בואו ננסה ליישם שיטות אלה ולהרטיב את הרגליים מקידוד.
יישום HashSet בתוכנית Java
בדוגמה שלהלן ננסה ליישם מספר שיטות המסופקות על ידי מחלקת HashSet.
ייבא java.util.HashSet ייבא java.util. * מחלקה ציבורית SampleHashSet {main static void main (String [] args) {// יצירת ערכת HashSet eduCourses = new HashSet () // הוספת אלמנטים חדשים ל- HashSet eduCourses.add ('Big Data') eduCourses.add ('Node.js') eduCourses.add ('Java') eduCourses.add ('Python') eduCourses.add ('Blockchain') eduCourses.add ('JavaScript') eduCourses. add ('Selenium') eduCourses.add ('AWS') eduCourses.add ('Machine Learning') eduCourses.add ('RPA') // הוספה של אלמנטים כפולים תתעלם eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // בדוק אם ה- HashSet מכיל אלמנט ספציפי String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' נמצא ברשימת הקורסים. ')} אחרת {System.out.println (myCourse +' לא נמצא ברשימת הקורסים. ')} // מיון eduCourses באמצעות רשימת רשימות רשימה = ArrayList חדש (eduCourses) Collections.sort (list) // הדפסת האלמנטים הממוינים של מערכת HashSet.out.println (' הדפסת הקורסים בסדר ממוין באמצעות רשימה: '+ רשימה) // הסרת פריטים מ- HashSet באמצעות remove () eduCourses.remove (' Python ') // איטרציה מעל פריטי HashSet System.out.println (' איטרציה על רשימת קורסים לאחר הסרה Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // יצירת אובייקט אחר של HashSet HashSet eduNewCourses = חדש HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // הסרת כל האלמנטים החדשים מ- HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('לאחר קריאת removeAll () נותרו קורסים בשיטה: '+ eduCourses) // הסרת אלמנטים על בסיס התנאי שצוין eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' לאחר קריאת שיטת removeIf (): '+ eduCourses) // הסרת אלמנטים מ eduCourses שצוינו ב- eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet after' + 'retainAll () פעולה: '+ eduNewCourses) // הסרת כל האלמנטים הזמינים בערכה eduCourses.clear () System.out.println (' לאחר קריאת שיטת clear (): '+ eduCourses)}}
כאשר אתה מבצע את הקוד לעיל, זה ייתן לך את הפלט המוצג להלן.
שיבוט עמוק ושיבוט רדוד בג'אווה
בכך אנו מגיעים לסוף מאמר זה. מקווה שהצלחתי לשמור על המושגים פריכים וברורים. אתה יכול ללמוד עוד על על ידי מעבר דרך שלנו .
כעת לאחר שהבנתם מהו HashSet בג'אווה, בדקו את ה- מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפזורים ברחבי העולם. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה מיועד לסטודנטים ואנשי מקצוע שרוצים להיות מפתח Java. הקורס נועד לתת לך יתרון בתכנות ג'אווה ולהכשיר אותך למושגי ג'אווה מרכזיים ומתקדמים יחד עם מסגרות ג'אווה שונות כמו Hibernate & Spring.
יש לך שאלה עבורנו? אנא הזכיר זאת במדור ההערות במאמר 'HashSet בג'אווה' ונחזור אליך בהקדם האפשרי.