Java では、さまざまなメソッドとデータ構造を通じて 2 つのリストを比較できます。この記事では、類似した要素と異なる要素の両方を見つけることに焦点を当てて、リストを比較するためのいくつかのアプローチを検討します。
ArrayList とtainAll メソッド
ArrayList とtainAll メソッドを使用すると、次のことが可能になります。両方のリストに含まれる要素のみを保持します。
import java.util.Collection; import java.util.ArrayList; public class ListComparison { public static void main(String[] args) { Collection<String> list1 = new ArrayList<>(Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta")); Collection<String> list2 = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo")); list1.retainAll(list2); System.out.println("Common elements: " + list1); } }
HashSet andremoveAll メソッド
共通の要素だけでなく異なる要素も検索する必要がある場合は、HashSet と RemoveAll メソッドを使用するのが適切な方法です。 HashSet では重複が許可されないため、値の繰り返しを排除できます。
import java.util.Collection; import java.util.HashSet; public class ListComparison2 { public static void main(String[] args) { Collection<String> list1 = Arrays.asList("milan", "iga", "dingo", "iga", "elpha", "iga", "hafil", "iga", "meat", "iga", "neeta.peeta", "iga"); Collection<String> list2 = Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo"); Collection<String> common = new HashSet<>(list1); Collection<String> different = new HashSet<>(); different.addAll(list1); different.addAll(list2); common.retainAll(list2); different.removeAll(common); System.out.printf("Common elements: %s%nDifferent elements: %s%n", common, different); } }
カスタム アプローチ
または、リストとデータを比較するカスタム メソッドを作成することもできます。共通の要素と異なる要素を返します。これにより、より柔軟なカスタマイズ オプションが提供されます。
public class CustomListComparison { public static void main(String[] args) { List<String> list1 = Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta"); List<String> list2 = Arrays.asList("hafil", "iga", "binga", "mike", "dingo"); List<String> common = new ArrayList<>(); List<String> different = new ArrayList<>(); for (String element : list1) { if (list2.contains(element)) { common.add(element); } else { different.add(element); } } for (String element : list2) { if (!list1.contains(element)) { different.add(element); } } System.out.printf("Common elements: %s%nDifferent elements: %s%n", common, different); } }
これらのテクニックを活用することで、Java で 2 つのリストを効率的に比較し、共通の要素と異なる要素の両方を識別できます
以上がJava で 2 つのリストを効率的に比較して、共通要素と異なる要素の両方を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。