Matematica - Differenza simmetrica
Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 32 di 59.
La differenza simmetrica di due insiemi è un nuovo insieme che contiene gli elementi presenti in uno dei due insiemi, ma non in entrambi. In Java, puoi calcolarla così:
- Trovare la differenza del primo insieme rispetto al secondo.
- Trovare la differenza del secondo insieme rispetto al primo.
- Combinare queste due differenze.
Per prima cosa, crea due HashSet:
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);Ora calcola ciascuna differenza unidirezionale:
HashSet<Integer> diff1 = new HashSet<>(set1);
diff1.removeAll(set2); // diff1 è [1]
HashSet<Integer> diff2 = new HashSet<>(set2);
diff2.removeAll(set1); // diff2 è [4]Ora, combina le due differenze:
diff1.addAll(diff2); // diff1 è [1, 4]Sfida
FacileCrea un metodo chiamato <strong>symmetricDifference</strong> che accetta in input due HashSet di interi, calcola la loro differenza simmetrica e la stampa nel formato:
Symmetric Difference: [elements]Provalo tu
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) {
// Scrivi il tuo codice qui
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Leggi la stringa JSON per il primo insieme (ad es., [1,2,3])
String set1String = scanner.nextLine();
// Leggi la stringa JSON per il secondo insieme (ad es., [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);
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Array multidimensionali
Concetti di base degli array 2DAccesso agli elementi degli array 2DCicli annidati con array 2DRiepilogo - Array 2DAddizione e sottrazione di matriciArray irregolariArray 3D e oltreSchemi comuni degli array 2DRiepilogo - Tutto sugli array4HashSet Parte 1
Che cos'è un HashSet?Aggiungere un elementoRimuovere un elementoVerificare se un elemento esisteVuoto e dimensioneSvuotare e clonareRipasso - HashSet7Gestione di base degli errori
Nozioni di base su try-catchBlocco finallyLancio di eccezioniEccezioni personalizzate2HashMap Parte 1
Che cos'è una HashMap?Dichiarare una HashMapAccedere ai valoriVerificare se una chiave esisteModificare i dizionariRiepilogo - HashMap5HashSet Parte 2
Matematica - Unione di HashSetMatematica - Intersezione di HashSetMatematica - Differenza tra insiemiMatematica - Differenza simmetricaSottoinsiemi e sovrainsiemiIterare sugli insiemi3HashMap Parte 2
Metodi di HashMapIterare con keySet()Iterare con entrySet()HashMap annidateRiepilogo - Gestire il magazzinoRiepilogo - Operazioni con HashMap6Flusso di controllo avanzato
Istruzioni con etichettaEspressione switchCorrispondenza dei patternClausole guardiaRiepilogo - Flusso di controllo9Progetto - Contatore di parole uniche
Inserimento e memorizzazione del testoElaborazione delle paroleEsercitati da solo: Compilatore Java online