Comparaison de deux listes en Java
Vous souhaitez comparer deux ensembles de données pour déterminer le nombre d'éléments qu'ils partagent. En supposant qu'il ne s'agit pas d'objets Java List, envisagez l'approche suivante :
En utilisant ArrayList
En utilisant ArrayList, vous pouvez utiliser la méthode retentionAll. Cette méthode conserve uniquement les éléments de la première liste qui sont également présents dans la deuxième liste. Par exemple :
import java.util.Collection; import java.util.ArrayList; import java.util.Arrays; public class ListComparison { public static void main(String[] args) { Collection<String> listOne = new ArrayList<>(Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta")); Collection<String> listTwo = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo")); listOne.retainAll(listTwo); System.out.println(listOne); } }
Ce code imprimera une liste des éléments communs entre listOne et listTwo.
Utilisation de HashSet
Si vous le souhaitez pour inclure les valeurs répétées (c'est-à-dire les éléments qui apparaissent plusieurs fois dans l'une ou l'autre liste), vous pouvez utiliser un HashSet au lieu d'ArrayList. HashSet n'autorise pas les doublons, donc après la comparaison, vous pouvez utiliser la méthode removeAll pour supprimer les éléments communs de l'ensemble combiné d'éléments dans les deux listes. Cela vous donnera une liste d'éléments uniques non communs :
import java.util.Collection; import java.util.HashSet; import java.util.Arrays; public class ListComparison { 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<>(listOne); Collection<String> different = new HashSet<>(); 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); } }
Ce code modifié affichera les éléments similaires et différents entre les deux listes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!