מה זה HashSet?
HashSet הוא סוג נתונים מובנה ב-Java, ובמונחים של הדיוט אתה יכול לומר "HashSet הוא אוסף לא מסודר של אלמנטים ייחודיים." תסתכל על דוגמה בסיסית:
- זה יוצר אוסף ( אוסף פירושו יחידה אחת של אובייקטים, למשל: ArrayList, LinkedList, Vector וכו') שמשתמש בטבלת hash לאחסון.
- ערכים כפולים אינם מותרים ב-HashSet.
- אתה יכול להוסיף ערכי "null" ב-HashSet.
- לא נשמר סדר הכנסה. אז אם אתה מחפש להכניס פריטים לפי הסדר, HashSet יהיה בחירה גרועה לדרישות שלך.
- אם אתה רוצה לקבל/לשלוף אלמנט בזמן קבוע (O(1)), אז HashSet היא אחת הגישות הטובות ביותר שאתה יכול לנקוט.
מהי שיטת HashSet.contains()?
HashSet.contains() היא שיטה בוליאנית לבדוק אם פריט קיים במופע של HashSet או לא. במילים פשוטות, האם הסט מכיל את האלמנט הרצוי. Java.util.HashSet מספק יישום יעיל עבורו. תן לנו להראות לך איך אתה יכול להשתמש בו ביעילות כדי לפתור את השאילתות שלך.contains() עם מספרים שלמים
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Declare your hash set
HashSet digits = new HashSet();
digits.add(0);
digits.add(1);
digits.add(2);
digits.add(3);
digits.add(4);
digits.add(5);
digits.add(null);
System.out.println("All elements in hashset:\t" + digits);
// Try adding duplicates
digits.add(5);
digits.add(2);
System.out.println("After adding duplicates: \t" + digits);
System.out.println("\n-------Using Contains Method-------");
// Check out if the following digits exist in the hashset
System.out.println("digits.contains(0) : " + digits.contains(0));
System.out.println("digits.contains(2) : " + digits.contains(2));
System.out.println("digits.contains(3) : " + digits.contains(7));
System.out.println("digits.contains(null) : " + digits.contains(null));
}
}
תְפוּקָה
כל הרכיבים ב-hashset: [0, null, 1, 2, 3, 4, 5] לאחר הוספת כפילויות: [0, null, 1, 2, 3, 4, 5] -------שימוש בשיטת מכיל- ------ digits.contains(0) : true digits.contains(2) : true digits.contains(3) : false digits.contains(null) : true
contains() עם Strings
עיין בדוגמה נוספת של מתודה contains() עם Strings .import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Try working with another hash set of String type
HashSet rainbow = new HashSet();
// Adding elements into HashSet using add()
rainbow.add("Red");
rainbow.add("Orange");
rainbow.add("Yellow");
rainbow.add("Green");
rainbow.add("Blue");
rainbow.add("Indigo");
rainbow.add("Violet");
// Let's traverse the hashset
System.out.println("Traversing the rainbow:");
for (String i : rainbow){
System.out.println(i);
}
// Check out if rainbow contains this color or not
System.out.println("\n-------Using Contains Method-------");
System.out.println("rainbow.contains(\"Yellow\"): \t" + rainbow.contains("Yellow"));
System.out.println("rainbow.contains(\"White\"): \t" + rainbow.contains("White"));
System.out.println("rainbow.contains(\"Lavender\"): \t" + rainbow.contains("Lavender"));
System.out.println("rainbow.contains(\"Red\"): \t" + rainbow.contains("Red"));
// Remove a color from rainbow using remove()
rainbow.remove("Red");
// Now consume set contains() method again to check if it's still present
System.out.println("rainbow.contains(\"Red\"): \t" + rainbow.contains("Red"));
System.out.println("\nAfter removing Red: " + rainbow);
}
}
תְפוּקָה
חוצה את הקשת: אדום סגול צהוב כחול אינדיגו כתום ירוק -------בשימוש בשיטת מכיל------- rainbow.contains("צהוב"): true rainbow.contains("לבן"): קשת שקר. contains("לבנדר"): false rainbow.contains("Red"): true rainbow.contains("Red"): false לאחר הסרת אדום: [סגול, צהוב, כחול, אינדיגו, כתום, ירוק]
כפי שניתן לראות, סדר הפלט שונה מסדר הכנסת האלמנטים ל-Hashset.
GO TO FULL VERSION