Menu
Coddy logo textTech

תת־קבוצות וקבוצות־על

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 33 מתוך 59.

תת־קבוצה היא קבוצה שכל איבר בה נמצא גם בקבוצה אחרת. קבוצת־על היא קבוצה שמכילה את כל האיברים של קבוצה אחרת.

ראשית, צרו שתי קבוצות HashSet:

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 is a subset of setB: true

באופן דומה, setB היא קבוצת על של setA משום שהיא מכילה כל איבר של setA.

challenge icon

אתגר

קל

צרו מתודה בשם <strong>checkSubsetSuperset</strong> שמקבלת שני HashSets של מחרוזות כקלט:

  • setA ו-setB

המתודה צריכה:

  1. לבדוק אם setA היא תת-קבוצה של setB באמצעות containsAll(), ולהדפיס:

    setA is a subset of setB: <true/false>
  2. לבדוק אם setB היא קבוצת-על של setA (זו אותה בדיקה), ולהדפיס:

    setB is a superset of setA: <true/false>

נסו בעצמכם

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);
        // קראו מחרוזת JSON עבור setA (למשל, ["apple","banana"])
        String setAString = scanner.nextLine();
        // קראו מחרוזת JSON עבור setB (למשל, ["apple","banana","cherry"])
        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);
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Java אונליין