EDITAR
Aquí hay dos versiones. Uno usando ArrayList
y otro usandoHashSet
Compárelos y cree su propia versión a partir de esto, hasta que obtenga lo que necesita.
Esto debería ser suficiente para cubrir:
PD: No es una tarea de la escuela :) Así que si me guias será suficiente
parte de tu pregunta.
continuando con la respuesta original:
Puede usar ay java.util.Collection
/ o java.util.ArrayList
para eso.
El método keepAll hace lo siguiente:
Conserva solo los elementos de esta colección que están contenidos en la colección especificada
ver esta muestra:
import java.util.Collection;
import java.util.ArrayList;
import java.util.Arrays;
public class Repeated {
public static void main( String [] args ) {
Collection listOne = new ArrayList(Arrays.asList("milan","dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta"));
Collection listTwo = new ArrayList(Arrays.asList("hafil", "iga", "binga", "mike", "dingo"));
listOne.retainAll( listTwo );
System.out.println( listOne );
}
}
EDITAR
Para la segunda parte (valores similares) puede utilizar el método removeAll :
Elimina todos los elementos de esta colección que también están contenidos en la colección especificada.
Esta segunda versión también le da valores similares y maneja repetidos (descartándolos).
Esta vez, Collection
podría ser a en Set
lugar de a List
(la diferencia es que el conjunto no permite valores repetidos)
import java.util.Collection;
import java.util.HashSet;
import java.util.Arrays;
class Repeated {
public static void main( String [] args ) {
Collection<String> listOne = Arrays.asList("milan","iga",
"dingo","iga",
"elpha","iga",
"hafil","iga",
"meat","iga",
"neeta.peeta","iga");
Collection<String> listTwo = Arrays.asList("hafil",
"iga",
"binga",
"mike",
"dingo","dingo","dingo");
Collection<String> similar = new HashSet<String>( listOne );
Collection<String> different = new HashSet<String>();
different.addAll( listOne );
different.addAll( listTwo );
similar.retainAll( listTwo );
different.removeAll( similar );
System.out.printf("One:%s%nTwo:%s%nSimilar:%s%nDifferent:%s%n", listOne, listTwo, similar, different);
}
}
Salida:
$ java Repeated
One:[milan, iga, dingo, iga, elpha, iga, hafil, iga, meat, iga, neeta.peeta, iga]
Two:[hafil, iga, binga, mike, dingo, dingo, dingo]
Similar:[dingo, iga, hafil]
Different:[mike, binga, milan, meat, elpha, neeta.peeta]
Si no hace exactamente lo que necesita, le da un buen comienzo para que pueda manejar desde aquí.
Pregunta para el lector: ¿Cómo incluiría todos los valores repetidos?