Encontrar una intersección de conjuntos en Java
El término Set
es una interfaz presente en el paquete java.util
. Un conjunto es una interfaz de colección que almacena listas desordenadas y no permite el almacenamiento de entidades duplicadas. Matemáticamente, la interfaz del conjunto tiene tres propiedades.
- Los elementos del Conjunto no son nulos.
- No hay dos elementos en el Conjunto que puedan ser iguales.
- Un conjunto no conserva el orden de inserción.
Utilice la inserción de conjuntos y busque la intersección de conjuntos en Java
Puede ver el programa a continuación, que demuestra la inserción de conjuntos y la búsqueda de la intersección entre dos conjuntos en Java.
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class SetIntersection {
public static void main(String[] args) {
Set<Integer> s1 = new HashSet<>();
s1.add(2);
s1.add(7);
s1.add(1);
System.out.println("Set1: " + s1);
List list = Arrays.asList(1, 7, 6, 8);
Set<Integer> s2 = new HashSet<>(list);
System.out.println("Set2: " + s2);
Set<Integer> intersection = new HashSet<>(s1);
intersection.retainAll(s2);
System.out.println("Intersection: " + intersection);
}
}
En el código anterior, un conjunto se declara como el primer paso del proceso. El new HashSet
crea una nueva instancia de la clase HashSet
y asigna la referencia formada a la instancia de Set
. La capacidad predeterminada de HashSet
es 16
y el factor de carga es 0.75
. La clase HashSet
es compatible con la interfaz Set
porque el HashSet
implementa internamente la interfaz Set.
La variable s1
se inicializa utilizando el método add
. La función agrega el objeto del tipo definido a la instancia de Set, considerando que el objeto no es nulo y no está duplicado. La función devuelve booleano
en función de si el valor se inserta o no. La función lanza una ClassCastException
si la clase del elemento especificado no es similar a la de la instancia de Set. Lanza una NullPointerException
si el elemento es un valor nulo y una IllegalArgumentException
si alguna propiedad del elemento prohíbe su adición a la colección Set.
Otra forma de crear un conjunto es usando la instancia de lista
pasada al parámetro del constructor HashSet
. La lista se inicializa con valores definidos utilizando el método asList
de la clase Arrays
. La instancia de la lista se pasa como parámetro en el constructor HashSet
. La colección Set no conserva el orden en el que se almacenan los elementos.
Otra instancia del Conjunto se crea una instancia con la instancia s1
como parámetro de constructor. Ahora, esta referencia de intersection
invoca otro método que es la función retainAll
. La función solo retiene los elementos que están presentes al invocar la instancia y la instancia invocada. El método devuelve booleano true
cuando el conjunto se cambia en la operación retain
. Lanza una UnsupportedOperationException
si no admite la operación sobre conjuntos. Lanza una ClassCastException
si hay tipos de conjuntos incompatibles y una NullPointerException
si el conjunto contiene un elemento nulo.
La salida de la intersección anterior entre conjuntos es la siguiente.
Producción :
Set1: [1, 2, 7]
Set2: [1, 6, 7, 8]
Intersection: [1, 7]
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn