Java 2 つのリストの比較
2 つのリストを比較して共有要素の数を決定し、類似した項目と異なる項目の両方を識別するには、次を使用します。 Java Collections.
共有要素を効率的に決定するには、retainAll メソッドの使用を検討してください。このメソッドは、最初のリストを変更して、両方のリストに存在する要素。たとえば、2 つのリスト「milan」と「hafil」がある場合、retainAll 操作は 1 つのリストを「milan」のみを含むように変更します。
類似した要素と異なる要素の両方を取得するには、Set を利用できます。 RemoveAll メソッドを使用すると、リスト間で共有されていない要素を Set から除外できます。結果の Set には類似した要素が含まれますが、異なる要素は両方のリストの和集合を計算し、その後類似した要素を除外することで取得できます。
比較のために Set を使用したサンプル コード スニペットを次に示します。
import java.util.Collection; import java.util.HashSet; import java.util.Arrays; class Repeated { public static void main(String[] args) { Collection<String> listOne = Arrays.asList("milan", "iga", "dingo", "elpha", "hafil", "meat", "neeta.peeta"); Collection<String> listTwo = Arrays.asList("hafil", "iga", "binga", "mike", "dingo"); Collection<String> similar = new HashSet<>(listOne); Collection<String> different = new HashSet<>(); different.addAll(listOne); different.addAll(listTwo); similar.retainAll(listTwo); different.removeAll(similar); System.out.printf("One:%s%nTwo:%s%nSimilar:%s%nDifferent:%s%n", listOne, listTwo, similar, different); } }
出力:
One:[milan, iga, dingo, elpha, hafil, meat, neeta.peeta] Two:[hafil, iga, binga, mike, dingo] Similar:[dingo, iga, hafil] Different:[mike, binga, milan, meat, elpha, neeta.peeta]
以上がJava で 2 つのリストを効率的に比較して、共有要素と一意の要素を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。