Matemáticas - Diferencia Simétrica
Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 32 de 59.
La diferencia simétrica de dos conjuntos es un nuevo conjunto que contiene elementos que están en uno u otro conjunto pero no en ambos. En Java, puedes calcularla mediante:
- Encontrando la diferencia del primer conjunto con respecto al segundo.
- Encontrar la diferencia del segundo conjunto con respecto al primero.
- Combinando estas dos diferencias.
Primero, crea dos 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);Siguiente, eliminar los mismos valores:
HashSet<Integer> diff1 = new HashSet<>(set1);
diff1.removeAll(set2); // diff1 es [1]
HashSet<Integer> diff2 = new HashSet<>(set2);
diff2.removeAll(set1); // diff2 es [4]Siguiente, elimina las dos diferencias:
diff1.addAll(diff2); // diff1 es 1, 4]Desafío
FácilCrea un método llamado <strong>symmetricDifference</strong> que tome dos HashSets de enteros como entrada, calcule su diferencia simétrica e imprímala en el formato:
Symmetric Difference: [elements]Hoja de referencia
La diferencia simétrica de dos conjuntos contiene elementos que están en uno u otro conjunto, pero no en ambos.
Para calcular la diferencia simétrica en Java:
- Encuentra la diferencia del primer conjunto con respecto al segundo
- Encuentra la diferencia del segundo conjunto con respecto al primero
- Combina estas dos diferencias
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);
// Remove common elements from each set
HashSet<Integer> diff1 = new HashSet<>(set1);
diff1.removeAll(set2); // diff1 is [1]
HashSet<Integer> diff2 = new HashSet<>(set2);
diff2.removeAll(set1); // diff2 is [4]
// Combine the differences
diff1.addAll(diff2); // diff1 is [1, 4]Pruébalo tú mismo
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) {
// Escribe tu código aquí
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Leer cadena JSON para el primer conjunto (p.ej., [1,2,3])
String set1String = scanner.nextLine();
// Leer cadena JSON para el segundo conjunto (p.ej., [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);
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap5HashSet Parte 2
Matemáticas - Unión de HashSetsMatemáticas - Intersección de HashSetMatemáticas - Diferencia de ConjuntosMatemáticas - Diferencia SimétricaSubconjuntos y SuperconjuntosIterando Sobre Conjuntos3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de Palabras