Trouver des éléments communs dans deux listes
Identifier les éléments communs entre deux listes est une exigence courante en programmation. Voici un guide sur la façon dont vous pouvez y parvenir à l'aide de l'API Collection de Java.
Approche 1 : Utilisation de Collection#retainAll()
La méthode Collection#retainAll() peut être utilisé pour modifier une liste existante pour contenir uniquement des éléments également présents dans une autre liste. Cette approche est efficace et concise.
List<Integer> listA = new ArrayList<>(Arrays.asList(1, 2, 3)); List<Integer> listB = new ArrayList<>(Arrays.asList(2, 4, 6)); listA.retainAll(listB); // The resulting listA will now contain only common elements: [2]
Approche 2 : Création d'une nouvelle liste avec des éléments communs
Pour éviter de modifier les listes d'origine, vous pouvez créer une nouvelle celui qui ne contient que les éléments communs. Cette méthode est légèrement moins efficace mais préserve l'intégrité des listes d'origine.
List<Integer> listA = new ArrayList<>(Arrays.asList(1, 2, 3)); List<Integer> listB = new ArrayList<>(Arrays.asList(2, 4, 6)); List<Integer> common = new ArrayList<>(listA); common.retainAll(listB); // The resulting common list will contain only common elements: [2]
Approche 3 : Utilisation des flux Java
Les flux Java offrent une approche plus fonctionnelle pour trouver des éléments communs. En utilisant la méthode Collection#contains(), vous pouvez filtrer les éléments non courants à l'aide de Stream#filter().
List<Integer> listA = new ArrayList<>(Arrays.asList(1, 2, 3)); List<Integer> listB = new ArrayList<>(Arrays.asList(2, 4, 6)); List<Integer> common = listA.stream().filter(listB::contains).toList(); // The resulting common list will contain only common elements: [2]
Conclusion
Ces approches fournissent différentes façons de trouver des éléments communs dans deux listes. Le choix de la méthode dépend d'exigences spécifiques, telles que des considérations de performances ou la nécessité de modifier les listes d'origine.
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!