Menu
Coddy logo textTech

Mathematik - Symmetrische Differenz

Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy — Lektion 32 von 59.

Die symmetrische Differenz zweier Mengen ist eine neue Menge, die Elemente enthält, die in einer der Mengen, aber nicht in beiden, enthalten sind. In Java können Sie sie wie folgt berechnen:

  1. Das Finden der Differenz der ersten Menge bezüglich der zweiten.
  1. Die Differenz der zweiten Menge bezüglich der ersten.
  1. Kombinieren dieser beiden Unterschiede.

Zuerst erstellen Sie zwei HashSets:

HashSet<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);

HashSet<Integer> set2 = new HashSet<>();
set2.add(2);
set2.add(3);
set2.add(4);

Als Nächstes entfernen Sie die gleichen Werte:

HashSet<Integer> diff1 = new HashSet<>(set1);
diff1.removeAll(set2);  // diff1 ist [1]
HashSet<Integer> diff2 = new HashSet<>(set2);
diff2.removeAll(set1);  // diff2 ist [4]

Als Nächstes entfernen Sie die beiden Unterschiede:

diff1.addAll(diff2);  // diff1 ist 1, 4]
challenge icon

Aufgabe

Einfach

Erstellen Sie eine Methode namens <strong>symmetricDifference</strong> die zwei HashSets von Ganzzahlen als Eingabe nimmt, ihre symmetrische Differenz berechnet und sie im Format ausgibt:

Symmetric Difference: [elements]

Spickzettel

Die symmetrische Differenz zweier Mengen enthält Elemente, die in einer der Mengen, aber nicht in beiden, enthalten sind.

Um die symmetrische Differenz in Java zu berechnen:

  1. Die Differenz der ersten Menge bezüglich der zweiten ermitteln
  2. Die Differenz der zweiten Menge bezüglich der ersten ermitteln
  3. Diese zwei Differenzen kombinieren
HashSet<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);

HashSet<Integer> set2 = new HashSet<>();
set2.add(2);
set2.add(3);
set2.add(4);

// Gemeinsame Elemente aus jeder Menge entfernen
HashSet<Integer> diff1 = new HashSet<>(set1);
diff1.removeAll(set2);  // diff1 ist [1]

HashSet<Integer> diff2 = new HashSet<>(set2);
diff2.removeAll(set1);  // diff2 ist [4]

// Die Differenzen kombinieren
diff1.addAll(diff2);  // diff1 ist [1, 4]

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 symmetricDifference(HashSet<Integer> set1, HashSet<Integer> set2) {
        // Schreiben Sie Ihren Code hier
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // Lesen Sie den JSON-String für die erste Menge (z.B. [1,2,3])
        String set1String = scanner.nextLine();
        // Lesen Sie den JSON-String für die zweite Menge (z.B. [2,3,4])
        String set2String = scanner.nextLine();

        Type setType = new TypeToken<HashSet<Integer>>(){}.getType();
        HashSet<Integer> set1 = new Gson().fromJson(set1String, setType);
        HashSet<Integer> set2 = new Gson().fromJson(set2String, setType);

        symmetricDifference(set1, set2);
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf