ホームページ > Java > &#&チュートリアル > Javaの2つのArrayListを比較します

Javaの2つのArrayListを比較します

DDD
リリース: 2025-02-07 12:03:10
オリジナル
179 人が閲覧しました

Comparing Two ArrayList In Java

このガイドでは、2つのアレイリストを比較するためのいくつかのJavaメソッドを調査します。 比較を成功させるには、両方のリストが同じサイズを持ち、同一の要素を含む必要があります。 Javaの配列を比較するための

メソッド

Javaの配列を比較するには、いくつかのアプローチが存在します:

  • メソッドequals()
  • メソッドremoveAll()
  • メソッドretainAll()
  • メソッド(ループ内)contains()
  • メソッド(文字列アレイリストの場合)contentEquals()
  • 直接的な要素ごとの比較(iteratorsまたはstreamsを使用)

例示的な例

例で説明しましょう:

例1: method equals()を使用しています

これは、同じオブジェクトタイプを含む配列リストを比較するための最も簡単なアプローチです。

import java.util.*;

public class ArrayListComparison {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
        ArrayList<Integer> list2 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
        ArrayList<Integer> list3 = new ArrayList<>(Arrays.asList(4, 3, 2, 1));

        System.out.println("list1 equals list2: " + list1.equals(list2)); // true
        System.out.println("list1 equals list3: " + list1.equals(list3)); // false (order matters)
    }
}
ログイン後にコピー
の例2:

および removeAll()retainAll()を使用して違いを識別します

別のリストに存在する要素を削除しますが、

は一般的な要素のみを保持します。 これらの方法は、違いを強調するのに役立ちます removeAll() retainAll()

例3:ストリームを使用した要素ごとの比較
import java.util.*;

public class ArrayListDifference {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>(Arrays.asList("apple", "banana", "orange"));
        ArrayList<String> list2 = new ArrayList<>(Arrays.asList("banana", "grape", "orange"));

        ArrayList<String> diff1 = new ArrayList<>(list1);
        diff1.removeAll(list2); // Elements in list1 but not in list2
        System.out.println("Elements only in list1: " + diff1); // [apple]

        ArrayList<String> common = new ArrayList<>(list1);
        common.retainAll(list2); // Common elements
        System.out.println("Common elements: " + common); // [banana, orange]

    }
}
ログイン後にコピー

より複雑なシナリオまたはカスタム比較ロジックについては、ストリームは柔軟性を提供します。 ArrayListsを比較するためのアルゴリズム

アルゴリズム

import java.util.*;
import java.util.stream.Collectors;

public class ArrayListStreamComparison {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
        ArrayList<Integer> list2 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));

        boolean isEqual = list1.stream().allMatch(list2::contains);
        System.out.println("Lists are equal (using streams): " + isEqual); //true

        //Find elements present in list1 but not in list2
        List<Integer> diff = list1.stream().filter(i -> !list2.contains(i)).collect(Collectors.toList());
        System.out.println("Difference: " + diff); // []

    }
}
ログイン後にコピー

サイズを確認します:

両方のアレイリストのサイズが同じかどうかを確認します。そうでない場合、それらは不平等です。
  1. 反復と比較:1つのArrayListの要素を反復します。各要素について、または同様の方法を使用して他のアレイリストに存在するかどうかを確認します。
  2. 処理順序:要素の順序が重要かどうかを検討してください。 は注文に敏感です。 順序が無関係である場合は、比較前に両方のリストをソートします contains()
  3. return result:
  4. すべての要素が一致している(および順序が考慮される)場合、を返します。それ以外の場合は、equals()を返します
  5. 結論true false複数の方法がJavaでのアレイリストの比較を容易にし、それぞれに強みがあります。
  6. メソッドは、単純な比較には効率的ですが、
および

は違いを強調しています。 ストリームは、より複雑な比較ニーズのために柔軟性を提供します。 特定の要件と複雑さに最適なアプローチを選択してください。

以上がJavaの2つのArrayListを比較しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
ヘルプ: JAVA 暗号化データ PHP 復号化
から 1970-01-01 08:00:00
0
0
0
JAVAをインストールする
から 1970-01-01 08:00:00
0
0
0
Javaをインストールできません
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート