למד מהו HashSet בג'אווה וכיצד להתחיל איתו!

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

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

להלן הנושאים המכוסים במאמר זה:





בוא נתחיל בהבנה ראשית מה הם HashSet בג'אווה.

דוגמה לארגומנטים של שורת הפקודה java

HashSet בג'אווה



java.util.HashSet מעמד הוא חבר במסגרת אוספי Java אשריורש את מחלקת AbstractSet ו-מיישם אתמַעֲרֶכֶת מִמְשָׁק . הוא מיישם במרומז hashtable ליצירה ואחסון של אוסף של אלמנטים ייחודיים. Hashtable אינו אלא מופע של מחלקת HashMap המשתמשת במנגנון hashing לאחסון המידע בתוך HashSet.

Hashing הוא תהליך ההמרה של תוכן המידע לערך ייחודי הידוע יותר בשם קוד hash. קוד hash זה משמש לאינדקס של הנתונים המשויכים למפתח. כל תהליך הפיכת מפתח המידע לקוד hashcode מבוצע באופן פנימי.

עכשיו להבנה טובה יותר של HashSet בג'אווה, תן לי לרשום כמה מהתכונות שלו:



  1. HashSet בג'אווה אינו מאפשר ערכים כפולים.
  2. זה יכול להכיל ערכי null.
  3. HashSet אינו פועל לפי סדר ההכנסה לאחסון הנתונים אלא עושה שימוש בקוד hash לאינדקס הערכים בתוכו.
  4. זה לא מסונכרן מה שהופך אותו באופן אוטומטי ללא חוט.
  5. מחלקת 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 בסדר היררכי.

קוד סדרת פיבונאטי בג'אווה

היררכיית Java HashSet - HashSet בג

עכשיו, קדימה עם מאמר 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 בג'אווה' ונחזור אליך בהקדם האפשרי.