מחלקה Java HashSet משמשת ליצירת אוסף המשתמש בטבלת Hash לאחסון. הוא יורש את המחלקה AbstractSet ומיישם ממשק Set.
הנקודות החשובות לגבי מחלקת Java HashSet הן:
לשיטת מחרוזת ב-java
- HashSet מאחסן את האלמנטים באמצעות מנגנון הנקרא hashing.
- HashSet מכיל אלמנטים ייחודיים בלבד.
- HashSet מאפשר ערך null.
- מחלקת HashSet אינה מסונכרנת.
- HashSet לא שומר על סדר ההכנסה. כאן, אלמנטים מוכנסים על בסיס ה-hashcode שלהם.
- HashSet היא הגישה הטובה ביותר לפעולות חיפוש.
- קיבולת ברירת המחדל הראשונית של HashSet היא 16, ומקדם הטעינה הוא 0.75.
ההבדל בין רשימה לסט
רשימה יכולה להכיל רכיבים כפולים בעוד שהסט מכיל אלמנטים ייחודיים בלבד.
היררכיה של מחלקה HashSet
מחלקת HashSet מרחיבה את מחלקת AbstractSet המיישמת ממשק Set. ממשק הסט יורש ממשקי Collection ו-Iterable בסדר היררכי.
הצהרת מחלקה HashSet
בוא נראה את ההצהרה עבור המחלקה java.util.HashSet.
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
בונים של מחלקת Java HashSet
SN | בַּנַאִי | תיאור |
---|---|---|
1) | HashSet() | הוא משמש לבניית HashSet ברירת מחדל. |
2) | HashSet (קיבולת int) | הוא משמש לאתחול הקיבולת של ערכת הגיבוב לקיבולת הערך השלם הנתון. הקיבולת גדלה אוטומטית עם הוספת אלמנטים ל-HashSet. |
3) | HashSet (קיבולת int, float loadFactor) | הוא משמש לאתחול הקיבולת של ערכת הגיבוב לקיבולת הערך השלם הנתון ולגורם העומס שצוין. |
4) | HashSet(אוסף ג) | הוא משמש לאתחול ערכת ה-hash באמצעות האלמנטים של אוסף c. |
שיטות של מחלקה Java HashSet
שיטות שונות של מחלקת Java HashSet הן כדלקמן:
SN | שינוי וסוג | שיטה | תיאור |
---|---|---|---|
1) | בוליאני | הוסף(E ה) | הוא משמש להוספת הרכיב שצוין לקבוצה זו אם הוא עדיין לא קיים. |
2) | בָּטֵל | ברור() | הוא משמש להסרת כל האלמנטים מהסט. |
3) | לְהִתְנַגֵד | clone() | הוא משמש להחזרת עותק רדוד של מופע HashSet זה: האלמנטים עצמם אינם משובטים. |
4) | בוליאני | מכיל (Object o) | הוא משמש להחזרת true אם קבוצה זו מכילה את האלמנט שצוין. |
5) | בוליאני | זה ריק() | הוא משמש להחזרת true אם קבוצה זו אינה מכילה אלמנטים. |
6) | איטרטור | iterator() | הוא משמש להחזרת איטרטור מעל האלמנטים בקבוצה זו. |
7) | בוליאני | remove(Object o) | הוא משמש להסרת הרכיב שצוין מקבוצה זו אם הוא קיים. |
8) | int | גודל() | הוא משמש להחזרת מספר האלמנטים בסט. |
9) | מפצל | מפצל() | הוא משמש ליצירת ספליטרטור מחייב מאוחר ונכשל מהיר מעל האלמנטים בסט. |
דוגמה ל-Java HashSet
בואו נראה דוגמה פשוטה של HashSet. שימו לב, האלמנטים חוזרים באוסף לא מסודר.
import java.util.*; class HashSet1{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); set.add('Four'); set.add('Five'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Five One Four Two Three
דוגמה של Java HashSet תוך התעלמות מאלמנטים כפולים
בדוגמה זו, אנו רואים ש-HashSet אינו מאפשר רכיבים כפולים.
import java.util.*; class HashSet2{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Ajay Vijay Ravi
דוגמה של Java HashSet להסרת אלמנטים
כאן, אנו רואים דרכים שונות להסיר אלמנט.
משחקי imessage עם אנדרואיד
import java.util.*; class HashSet3{ public static void main(String args[]){ HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Arun'); set.add('Sumit'); System.out.println('An initial list of elements: '+set); //Removing specific element from HashSet set.remove('Ravi'); System.out.println('After invoking remove(object) method: '+set); HashSet set1=new HashSet(); set1.add('Ajay'); set1.add('Gaurav'); set.addAll(set1); System.out.println('Updated List: '+set); //Removing all the new elements from HashSet set.removeAll(set1); System.out.println('After invoking removeAll() method: '+set); //Removing elements on the basis of specified condition set.removeIf(str->str.contains('Vijay')); System.out.println('After invoking removeIf() method: '+set); //Removing all the elements available in the set set.clear(); System.out.println('After invoking clear() method: '+set); } }
An initial list of elements: [Vijay, Ravi, Arun, Sumit] After invoking remove(object) method: [Vijay, Arun, Sumit] Updated List: [Vijay, Arun, Gaurav, Sumit, Ajay] After invoking removeAll() method: [Vijay, Arun, Sumit] After invoking removeIf() method: [Arun, Sumit] After invoking clear() method: []
Java HashSet מאוסף אחר
import java.util.*; class HashSet4{ public static void main(String args[]){ ArrayList list=new ArrayList(); list.add('Ravi'); list.add('Vijay'); list.add('Ajay'); HashSet set=new HashSet(list); set.add('Gaurav'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Vijay Ravi Gaurav Ajay
דוגמה ל-Java HashSet: ספר
בוא נראה דוגמה של HashSet שבה אנחנו מוסיפים ספרים לסט ומדפיסים את כל הספרים.
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashSetExample { public static void main(String[] args) { HashSet set=new HashSet(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to HashSet set.add(b1); set.add(b2); set.add(b3); //Traversing HashSet for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
תְפוּקָה:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
אולי גם תאהב:
עבודה של HashSet ב-Java