ホームページ >Java >&#&チュートリアル >Java で 2 つのリスト間で共通要素と異なる要素を効率的に見つけるにはどうすればよいですか?
このプログラミング シナリオでは、類似要素と異なる要素の両方を識別するとともに、2 つのリスト間の共通要素の数を決定することを目的としています。
これを実現するには、Java のコレクション フレームワーク、具体的には ArrayList クラスまたは HashSet クラスを利用できます。 ArrayList の保持All メソッドは、両方のリストで共有される項目のみを保持し、共通要素の数 (この場合は 3 つ) を提供します。
例:
import java.util.ArrayList; import java.util.Arrays; public class CompareLists { public static void main(String[] args) { ArrayList<String> list1 = new ArrayList<>(Arrays.asList("milan", "dingo", "iga", "elpha", "hafil", "meat", "iga", "milan", "elpha", "meat", "iga")); ArrayList<String> list2 = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo")); list1.retainAll(list2); System.out.println(list1); } }
または、 2 番目のリストに HashSet を使用すると、より効率的な比較が可能になります。
import java.util.HashSet; import java.util.Arrays; public class CompareLists { public static void main(String[] args) { ArrayList<String> list1 = new ArrayList<>(Arrays.asList("milan", "dingo", "iga", "elpha", "hafil", "meat", "iga", "milan", "elpha", "meat", "iga")); HashSet<String> list2 = new HashSet<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo")); Set<String> common = new HashSet<>(list1); common.retainAll(list2); Set<String> unique = new HashSet<>(list1); unique.addAll(list2); unique.removeAll(common); System.out.println("Common: " + common); System.out.println("Distinct: " + unique); } }
このバージョンでは、共通の値と個別の値の両方を識別し、処理します。値を効果的に繰り返します。
以上がJava で 2 つのリスト間で共通要素と異なる要素を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。