ÉDITER
Voici deux versions. Une utilisation ArrayList
et une autre utilisationHashSet
Comparez-les et créez votre propre version à partir de là, jusqu'à ce que vous obteniez ce dont vous avez besoin.
Cela devrait suffire à couvrir:
PS: Ce n'est pas une mission scolaire :) Donc si vous me guidez, cela suffira
une partie de votre question.
continuer avec la réponse originale:
Vous pouvez utiliser un java.util.Collection
et / ou java.util.ArrayList
pour cela.
La méthode retentionAll effectue les opérations suivantes:
Conserve uniquement les éléments de cette collection qui sont contenus dans la collection spécifiée
voir cet exemple:
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 );
}
}
ÉDITER
Pour la deuxième partie (valeurs similaires), vous pouvez utiliser la méthode removeAll :
Supprime tous les éléments de cette collection qui sont également contenus dans la collection spécifiée.
Cette deuxième version vous donne également les valeurs similaires et gère les répétitions (en les supprimant).
Cette fois, le Collection
pourrait être un Set
au lieu d'un List
(la différence est que l'ensemble ne permet pas de valeurs répétées)
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);
}
}
Production:
$ 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]
S'il ne fait pas exactement ce dont vous avez besoin, cela vous donne un bon départ afin que vous puissiez gérer à partir d'ici.
Question pour le lecteur: Comment incluriez-vous toutes les valeurs répétées?