ما هو HashSet؟
HashSet هو نوع بيانات مدمج في Java، وبعبارات عامة يمكنك القول "HashSet عبارة عن مجموعة غير مرتبة من العناصر الفريدة." ألق نظرة على مثال أساسي:- يقوم بإنشاء مجموعة ( المجموعة تعني وحدة واحدة من الكائنات على سبيل المثال: ArrayList وLinkedList وVector وما إلى ذلك) التي تستخدم جدول التجزئة للتخزين.
- لا يُسمح بالقيم المكررة في HashSet.
- يمكنك إدراج قيم "خالية" في HashSet.
- لا يتم الاحتفاظ بأمر الإدراج. لذا، إذا كنت تريد إدراج العناصر بالترتيب، فستكون HashSet خيارًا سيئًا لمتطلباتك.
- إذا كنت ترغب في الحصول على/استرداد عنصر في وقت ثابت (O(1)) فإن HashSet هي واحدة من أفضل الطرق التي يمكنك اتباعها.
ما هي طريقة HashSet.contains()؟
HashSet.contains() هي طريقة منطقية للتحقق مما إذا كان العنصر موجودًا في مثيل HashSet أم لا. ببساطة، ما إذا كانت المجموعة تحتوي على العنصر المطلوب. يوفر Java.util.HashSet تنفيذًا فعالاً لذلك. دعنا نوضح لك كيف يمكنك استخدامه بشكل فعال لحل استفساراتك.يحتوي على () مع الأعداد الصحيحة
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));
}
}
انتاج |
جميع العناصر في مجموعة التجزئة: [0, null, 1, 2, 3, 4, 5] بعد إضافة التكرارات: [0, null, 1, 2, 3, 4, 5] ------- استخدام طريقة الاحتواء- ------ digits.contains(0) : أرقام صحيحة. تحتوي على (2) : أرقام صحيحة. تحتوي على (3) : أرقام كاذبة. تحتوي على (خالية) : صحيح
يحتوي على () مع سلاسل
ألقِ نظرة على مثال آخر لأسلوب يحتوي على() مع 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("Yellow"): true Rainbow.contains("White"): قوس قزح كاذب. يحتوي على ("Lavender"): قوس قزح كاذب. يحتوي على ("Red"): قوس قزح حقيقي. يحتوي على ("Red"): خطأ بعد إزالة اللون الأحمر: [بنفسجي، أصفر، أزرق، نيلي، برتقالي، أخضر]
كما ترون فإن ترتيب الإخراج يختلف عن ترتيب وضع العناصر في Hashset.
GO TO FULL VERSION