ホームページ >Java >&#&チュートリアル >2 つの Java リストで共通の要素を効率的に見つけるにはどうすればよいですか?
2 つのリスト内の共通要素の検索
2 つのリスト間の共通要素を特定することは、プログラミングにおける一般的な要件です。ここでは、Java の Collection API を使用してこれを実現する方法についてのガイドを示します。
アプローチ 1: Collection#retainAll() を使用する
Collection#retainAll() メソッドは次のようになります。別のリストにも存在する要素のみを含むように既存のリストを変更するために使用されます。このアプローチは効率的かつ簡潔です。
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]
アプローチ 2: 共通要素を含む新しいリストを作成する
元のリストの変更を避けるために、新しいリストを作成できます。共通の要素のみを含むもの。この方法は効率が若干劣りますが、元のリストの整合性は維持されます。
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]
アプローチ 3: Java Streams の使用
Java Streams は、より機能的なアプローチを提供します。共通要素を見つけること。 Collection#contains() メソッドを利用すると、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]
結論
これらのアプローチは次のことを提供します。 2 つのリスト内の共通要素を見つけるためのさまざまな方法。方法の選択は、パフォーマンスの考慮事項や元のリストの変更の必要性など、特定の要件によって異なります。
以上が2 つの Java リストで共通の要素を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。