Maison > Java > javaDidacticiel > Comment puis-je trouver efficacement des éléments communs entre deux listes en Java ?

Comment puis-je trouver efficacement des éléments communs entre deux listes en Java ?

Mary-Kate Olsen
Libérer: 2024-12-08 10:57:16
original
246 Les gens l'ont consulté

How Can I Efficiently Find Common Elements Between Two Lists in Java?

Récupération d'éléments communs à partir de deux listes

Lorsque vous travaillez avec des collections en Java, vous pouvez rencontrer des situations où vous devez trouver les éléments communs partagés par plusieurs listes. Vous pouvez adopter plusieurs approches pour accomplir cette tâche.

Utilisation de Collection#retainAll()

La méthode Collection#retainAll() fournit une solution simple pour trouver des éléments. Il met à jour la liste d'appels (listA) en supprimant tous les éléments qui ne sont pas également contenus dans la collection spécifiée (listB). Cela ne conserve effectivement que les éléments communs.

listA.retainAll(listB); // listA now contains only common elements
Copier après la connexion

Création d'une nouvelle liste

Si vous préférez conserver les listes d'origine, vous pouvez créer une nouvelle liste appelée commune . Cette liste est initialement remplie avec les éléments de listA, puis la méthode retentionAll() est utilisée pour filtrer les éléments non communs.

List<Integer> common = new ArrayList<>(listA);
common.retainAll(listB); // common now contains only common elements
Copier après la connexion

Utilisation de Stream#filter()

Pour ceux qui privilégient les streams, vous pouvez exploiter la méthode Stream#filter(). Cette approche consiste à vérifier si chaque élément de listA est présent dans listB à l'aide de Collection#contains(). Les éléments qui satisfont à cette condition sont ajoutés à la liste commune.

List<Integer> common = listA.stream().filter(listB::contains).toList(); // common now contains only common elements
Copier après la connexion

Remarque : Bien que cette méthode offre de la flexibilité, elle a tendance à être plus lente que les autres approches.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal