java - manejo - Cómo calcular la intersección de dos conjuntos?
manejo de conjuntos en java (2)
Sí, hay retainAll
Revisa this
Set<Type> intersection = new HashSet<Type>(s1);
intersection.retainAll(s2);
Posible duplicado:
Encontrar de manera eficiente la intersección de un número variable de conjuntos de cadenas
Diga, tenga dos Hashset, ¿cómo calcular la intersección de ellos?
Set<String> s1 = new HashSet<String>();
Set<String> s2 = new HashSet<String>();
S1 INT S2 ?
Use el método retainAll()
de Set
:
Set<String> s1;
Set<String> s2;
s1.retainAll(s2); // s1 now contains only elements in both sets
Si desea conservar los conjuntos, cree un nuevo conjunto para mantener la intersección:
Set<String> intersection = new HashSet<String>(s1); // use the copy constructor
intersection.retainAll(s2);
El retainAll() de retainAll()
dice que es exactamente lo que quiere:
Retiene solo los elementos en este conjunto que están contenidos en la colección especificada (operación opcional). En otras palabras, elimina de este conjunto todos sus elementos que no están contenidos en la colección especificada. Si la colección especificada también es un conjunto, esta operación modifica efectivamente este conjunto de modo que su valor sea la intersección de los dos conjuntos.