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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-12-12 15:49:09179parcourir

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

Recherche d'éléments communs dans les listes

Pour identifier les éléments partagés entre deux listes, vous pouvez utiliser Collection#retainAll(). En utilisant cette méthode, vous pouvez facilement conserver uniquement les éléments présents dans les deux listes, éliminant ainsi efficacement tout élément unique de l'une ou l'autre liste.

listA.retainAll(listB);
// listA now contains only the elements also contained in listB.

Alternativement, si vous souhaitez conserver la liste A d'origine, vous pouvez créer un nouvelle liste pour contenir les éléments communs :

List<Integer> common = new ArrayList<>(listA);
common.retainAll(listB);
// common now contains only the elements contained in both listA and listB.

Pour les amateurs de streams, une approche astucieuse consiste à filtrer en fonction du confinement à l'aide de Stream#filter() et Collection#contains() :

List<Integer> common = listA.stream().filter(listB::contains).toList();
// common now contains only the elements contained in both listA and listB.

Bien que cela puisse paraître plus concis, son exécution est également au moins deux fois plus lente.

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!

Déclaration:
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