リスト内の共通要素の検索
2 つのリスト間の共有要素を識別するには、Collection#retainAll() を使用できます。この方法を利用すると、両方のリストに存在する要素のみを保持し、どちらかのリストから一意の要素を効果的に削除できます。
listA.retainAll(listB); // listA now contains only the elements also contained in listB.
または、元の listA を保持したい場合は、共通の要素を保持する新しいリスト:
List<Integer> common = new ArrayList<>(listA); common.retainAll(listB); // common now contains only the elements contained in both listA and listB.
ストリームの愛好家にとって、賢いアプローチには、Stream#filter() と Stream#filter() を使用した包含に基づくフィルタリングが含まれます。 Collection#contains():
List<Integer> common = listA.stream().filter(listB::contains).toList(); // common now contains only the elements contained in both listA and listB.
これはより簡潔に見えるかもしれませんが、実行が少なくとも 2 倍遅くなります。
以上がJava で 2 つのリスト間の共通要素を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。