English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، سنتعلم عن واجهة Set في Java(Methods).
واجهة Set في إطار Collections لـ Java توفر ميزات مجموعات الرياضيات في Java. إنها تنحدر من واجهة Collection.
مختلفة عن واجهة List، لا يمكن لمجموعة Set أن تحتوي على عناصر مكررة.
بما أن Set هي واجهة، لا يمكن إنشاء أجرأتها
للاستفادة من ميزات واجهة Set، يمكننا استخدام الفئات التالية:
تحدد وتحقق هذه الفئات واجهة Set في إطار Collections.
توسع واجهة Set هذه الفروع:
في Java، يجب استيراد حزمة java.util.Set لاستخدام Set.
// تحقيق Set باستخدام HashSet Set<String> animals = new HashSet<>();
في هذا السياق، قمنا بإنشاء مجموعة تسمى animals. لقد استخدمنا فئة HashSet لتحقيق واجهة Set.
تتضمن واجهة Set جميع طرق واجهة Collection. هذا لأن Collection هي واجهة الأب لـ Set.
يقدم واجهة Set بعض من الطرق الشائعة لـ واجهة Collection:
add() - إضافة العنصر المحدد إلى المجموعة
addAll() - إضافة جميع العناصر في المجموعة المحددة إلى المجموعة
iterator() - العودة إلى م迭代ر يمكن استخدامه لاستدعاء العناصر في الترتيب
remove() - إزالة العنصر المحدد من المجموعة
removeAll() - إزالة جميع العناصر من المجموعة التي تزال موجودة في مجموعة أخرى محددة
keepAll() - الحفاظ على جميع العناصر التي تزال موجودة في مجموعة أخرى محددة
clear() - إزالة جميع العناصر من المجموعة
size() - العودة إلى طول المجموعة (عدد العناصر)
toArray() - العودة إلى مصفوفة تحتوي على جميع العناصر في المجموعة
contains() - إذا كان يحتوي المجموعة على العنصر المحدد، فإنه يعود صحيح
containsAll() - إذا كان يحتوي المجموعة على جميع العناصر في المجموعة المحددة، فإنه يعود صحيح
hashCode() - العودة إلى قيمة الهاش (عنوان العنصر في المجموعة)
يسمح لنا واجهة Java Set بإجراء عمليات الحسابات الرياضية الأساسية للمجموعات، مثل التكامل، والتفريق والنصف.
Union - للحصول على مصفوفة الجمع بين مجموعتين x و y، يمكننا استخدام x.addAll(y)
Intersection - للحصول على مصفوفة التقاء مجموعتين x و y، يمكننا استخدام x.retainAll(y)
Subset - لتحقق ما إذا كان x هو مجموعة فرعية من y، يمكننا استخدام y.containsAll(x)
1. تنفيذ فئة HashSet
import java.util.Set; import java.util.HashSet; class Main { public static void main(String[] args) { //استخدام فئة HashSet لإنشاء مجموعة Set<Integer> set1 = new HashSet<>(); //إضافة العناصر إلى set1 set1.add(2); set1.add(3); System.out.println("Set1: "+ set1); //استخدام فئة HashSet لإنشاء مجموعة أخرى Set<Integer> set2 = new HashSet<>(); //إضافة العناصر set2.add(1); set2.add(2); System.out.println("Set2: "+ set2); //جمع مجموعتين set2.addAll(set1); System.out.println("الجمع هو: "+ set2); } }
نتيجة الإخراج
Set1: [2, 3] Set2: [1, 2] الجمع هو: [1, 2, 3]
للحصول على معلومات إضافية حول HashSet، يرجى زيارةHashSet في Java.
2. تنفيذ فئة TreeSet
import java.util.Set; import java.util.TreeSet; import java.util.Iterator; class Main { public static void main(String[] args) { //استخدام فئة TreeSet لإنشاء مجموعة Set<Integer> numbers = new TreeSet<>(); //إضافة العناصر إلى مجموعة set numbers.add(2); numbers.add(3); numbers.add(1); System.out.println("TreeSet: "+ numbers); //استخدام iterator() لاستدعاء العناصر System.out.print("استخدام iterator() لاستدعاء العناصر: "); Iterator<Integer> iterate = numbers.iterator(); while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } } }
نتيجة الإخراج
TreeSet: [1, 2, 3] استخدام iterator() للاستعلام عن العناصر: 1, 2, 3,
للحصول على معلومات إضافية حول TreeSet، يرجى زيارةJava TreeSet.
الآن نعرف ما هو Set، في الدروس القادمة سنرى كيفية تنفيذها في الفئات مثل EnumSet، HashSet، LinkedHashSet و TreeSet.