Unter- und Obermengen
Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy — Lektion 33 von 59.
Eine Teilmenge ist eine Menge, in der jedes Element auch in einer anderen Menge enthalten ist. Eine Obermenge ist eine Menge, die alle Elemente einer anderen Menge enthält.
Zuerst zwei HashSets erstellen:
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");Verwenden Sie die containsAll()-Methode:
boolean isSubset = setB.containsAll(setA);
System.out.println("setA is a subset of setB: " + isSubset);
// Output: setA is a subset of setB: trueÄhnlich ist setB eine Obermenge von setA, weil es jedes Element von setA enthält.
Aufgabe
EinfachErstellen Sie eine Methode namens <strong>checkSubsetSuperset</strong>, die zwei HashSets von Strings als Eingabe nimmt:
- setA und setB
Die Methode sollte:
Überprüfen Sie, ob setA eine Teilmenge von setB ist, unter Verwendung von
containsAll(), und geben Sie aus:setA is a subset of setB: <true/false>Überprüfen Sie, ob setB eine Obermenge von setA ist (dies ist dieselbe Überprüfung), und geben Sie aus:
setB is a superset of setA: <true/false>
Spickzettel
Eine Teilmenge ist eine Menge, in der jedes Element auch in einer anderen Menge enthalten ist. Eine Übermenge ist eine Menge, die alle Elemente einer anderen Menge enthält.
Verwenden Sie die containsAll()-Methode, um zu überprüfen, ob eine Menge eine Teilmenge einer anderen ist:
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);
// Output: setA is a subset of setB: trueWenn setA eine Teilmenge von setB ist, dann ist setB eine Übermenge von setA.
Probier es selbst
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) {
// Schreibe deinen Code hier
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Lese JSON-String für setA (z. B. ["apple","banana"])
String setAString = scanner.nextLine();
// Lese JSON-String für setB (z. B. ["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);
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen der 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysZusammenfassung - 2D-ArraysMatrixaddition & SubtraktionJagged Arrays3D-Arrays und darüber hinausGängige 2D-Array-MusterZusammenfassung - Alles über Arrays2HashMap Teil 1
Was ist eine HashMap?Eine HashMap deklarierenWerte abrufenPrüfen, ob ein Schlüssel existiertWörterbücher modifizierenZusammenfassung - HashMap3HashMap Teil 2
HashMap-MethodenMit keySet() iterierenMit entrySet() iterierenVerschachtelte HashMapZusammenfassung - Lager verwaltenZusammenfassung - HashMap-Operationen6Erweiterter Steuerungsfluss
Beschriftete AnweisungenSwitch-AusdruckMusterabgleichSchutzklauselnZusammenfassung - Steuerungsfluss9Projekt - Einzigartiger Wortzähler
Texteingabe und SpeicherungWortverarbeitung