المجموعات الجزئية والشاملة
جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 33 من 59.
المجموعة الجزئية هي مجموعة يكون فيها كل عنصر محتوى أيضاً في مجموعة أخرى. المجموعة الشاملة هي مجموعة تحتوي على جميع عناصر مجموعة أخرى.
أولاً، قم بإنشاء اثنين من HashSets:
HashSet<String> setA = new HashSet<>();
setA.add("apple");
setA.add("banana");
HashSet<String> setB = new HashSet<>();
setB.add("apple");
setB.add("banana");
setB.add("cherry");استخدم الطريقة containsAll():
boolean isSubset = setB.containsAll(setA);
System.out.println("setA is a subset of setB: " + isSubset);
// المخرجات: setA هي مجموعة جزئية من setB: trueوبالمثل، فإن setB هي مجموعة شاملة (superset) لـ setA لأنها تحتوي على كل عنصر من عناصر setA.
التحدي
سهلقم بإنشاء طريقة تسمى <strong>checkSubsetSuperset</strong> تأخذ اثنين من HashSets من السلاسل النصية كمدخلات:
- setA و setB
يجب أن تقوم الطريقة بـ:
التحقق مما إذا كان setA مجموعة جزئية من setB باستخدام
containsAll()، وطباعة:setA is a subset of setB: <true/false>التحقق مما إذا كان setB مجموعة شاملة لـ setA (هذا هو نفس التحقق)، وطباعة:
setB is a superset of setA: <true/false>
ورقة مرجعية
المجموعة الجزئية هي مجموعة يكون فيها كل عنصر موجوداً أيضاً في مجموعة أخرى. المجموعة الشاملة هي مجموعة تحتوي على جميع عناصر مجموعة أخرى.
استخدم الطريقة containsAll() للتحقق مما إذا كانت إحدى المجموعات مجموعة جزئية من مجموعة أخرى:
HashSet<String> setA = new HashSet<>();
setA.add("apple");
setA.add("banana");
HashSet<String> setB = new HashSet<>();
setB.add("apple");
setB.add("banana");
setB.add("cherry");
boolean isSubset = setB.containsAll(setA);
System.out.println("setA is a subset of setB: " + isSubset);
// المخرجات: setA is a subset of setB: trueإذا كانت setA مجموعة جزئية من setB، فإن setB هي مجموعة شاملة لـ setA.
جرّب بنفسك
import java.util.HashSet;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
public class Main {
public static void checkSubsetSuperset(HashSet<String> setA, HashSet<String> setB) {
// اكتب الكود الخاص بك هنا
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// (["apple","banana"] :مثال) setA لـ JSON اقرأ نص
String setAString = scanner.nextLine();
// (["apple","banana","cherry"] :مثال) setB لـ JSON اقرأ نص
String setBString = scanner.nextLine();
Type setType = new TypeToken<HashSet<String>>(){}.getType();
HashSet<String> setA = new Gson().fromJson(setAString, setType);
HashSet<String> setB = new Gson().fromJson(setBString, setType);
checkSubsetSuperset(setA, setB);
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap5HashSet الجزء الثاني
رياضيات - اتحاد الـ HashSetsرياضيات - تقاطع الـ HashSetرياضيات - فرق المجموعاترياضيات - الفرق المتناظرالمجموعات الجزئية والشاملةالتكرار عبر المجموعات3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم