Java で ArrayLists を比較する

Sarwan Soomro 2023年10月12日
  1. Java で配列リストを比較する
  2. Java で 2つの配列リストを比較する
  3. Java で比較する前に配列リストをソートする
Java で ArrayLists を比較する

Javaには、文字列クラスや配列リストなどを比較するための簡単なメソッドがあります。このチュートリアルでは、まず、文字列クラスと配列リストを比較する方法を説明します。

このチュートリアルでは、最初に、Java の比較メソッドを使用して 2つの配列リストを比較します。また、配列リストに適用する前に、同じメソッドを Java 文字列に適用します。

最後に、比較する前に順序付けされていない配列リストを並べ替える方法を示します。

Java で配列リストを比較する

Java には、配列リスト内のオブジェクト、サイズ、および要素を比較するための組み込みメソッドがあります。同じ出力を取得するために使用できる方法はたくさんありますが、最も簡単な方法であるため、次の方法を使用します。

Java の .equals() 関数

Java のこの関数は、ユーザー指定のオブジェクトをこのリストと比較します。

構文構造:

ArrayList1.equals(ArrayList2)

パラメータ:オブジェクトのみ。この場合、ArrayList2 は単一のパラメーターとして渡されるオブジェクトです。

このメソッドは、以下に基づいてブール値の true または false を返します。

  1. ユーザー指定のオブジェクトがリストでもある場合。
  2. 両方のリストのサイズは同じです。
  3. 2つのリストの関連する要素のペアもすべて同等です。

この方法をより客観的に理解するには、文字列を使用して作成した次のプログラムを確認してください。

後で、配列リストで同じロジックを使用します。

Java で .equals() メソッドを使用して文字列を比較する

package comparearrays.com.util;

public class FirstStringDemoEqualsMethd {
  public static void main(String[] args) {
    String one = "USA";
    String two = "USA";
    String three = "Germany";

    // comparing the values of string one and string two
    if (one.equals(two) == true) {
      System.out.println("String one: " + one);
      System.out.println("String one: " + two);
      System.out.println("Both are equal");
    } else {
      System.out.println("Both are not equal");
    }

    // compares string one's values against string three's (since both are the same, true)
    // false (one and three are not the same, false)
    System.out.println("String one and String three are not the same: so, " + one.equals(three));
  }
}

出力:

String one: USA
String one: USA
Both are equal
String one and String three are not the same: so, false

Java で 2つの配列リストを比較する

上記の例では、.equals() を使用して文字列値を比較し、Java の ArrayList で使用した場合にメソッドが同じように機能することを示しました。どうして?

次の Java 構文を確認してください。

ArrayList<String> myList1 = new ArrayList<String>();
ArrayList<String> myList2 = new ArrayList<String>();

配列リストは、ここで Java の String クラスを使用します。同様に、前の例の文字列を比較しました。

そして今、ArrayList<String> で同じメソッドを使用します。

すべて明確になりましたか?やってみましょう。

Java コード:

package comparearrays.com.util;

import java.util.ArrayList;

// main class
public class ArrayListComparisionExample1 {
  // main function
  public static void main(String[] args) {
    // list 1
    ArrayList<String> myList1 = new ArrayList<String>();
    // values
    myList1.add("Apple");
    myList1.add("Orange");
    myList1.add("Grapes");
    myList1.add("Water Melon");
    // list 2
    ArrayList<String> myList2 = new ArrayList<String>();
    // values
    myList2.add("Apple");
    myList2.add("Orange");
    myList2.add("Grapes");
    myList2.add("Water Melon");
    // print list 1
    System.out.println("Values from list 1: " + myList1);
    // print list 2
    System.out.println("Values from list 2: " + myList2);

    // apply .equals() method for comparision
    if (myList1.equals(myList2) != false) {
      System.out.println("Both Array Lists are equal!");
    } else {
      System.out.println("Both Array Lists are not equal!");
    }

    // add new values to list to determine if condition works
    myList1.add("Pine Apple");
    // print updated list
    System.out.println("Updated valued from list 1: " + myList1);

    // compare again

    if (myList1.equals(myList2) != false) {
      System.out.println("Both Array Lists are equal!");
    } else {
      System.out.println("Both Array Lists are not equal!");
    }
  }
}

出力:

Values from list 1: [Apple, Orange, Grapes, Water Melon]
Values from list 2: [Apple, Orange, Grapes, Water Melon]
Both Array Lists are equal!
Updated valued from list 1: [Apple, Orange, Grapes, Water Melon, Pine Apple]
Both Array Lists are not equal!

Java で比較する前に配列リストをソートする

配列リストのサイズと要素が同じで、値が並べ替えられていない場合はどうなりますか?

ArrayList<String> myList1 = new ArrayList<String>(Arrays.asList("1", "2", "3", "4", "5"));
ArrayList<String> myList2 = new ArrayList<String>(Arrays.asList("2", "1", "3", "4", "5"));
ノート
簡単な解決策は、import java.util.Collections; を使用することです。それはあなたのために残りをします。方法は次のとおりです。
package comparearrays.com.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class ArrayListsComparisionAndSortingExample2 {
  public static void main(String[] args) {
    ArrayList<String> myList1 = new ArrayList<String>(Arrays.asList("1", "2", "3", "4", "5"));
    // unsorted list
    ArrayList<String> myList2 = new ArrayList<String>(Arrays.asList("2", "1", "3", "4", "5"));
    // sorting lists
    Collections.sort(myList1);
    Collections.sort(myList2);
    System.out.println(myList1.equals(myList2)); //
  }
}

出力:

true

Collections.sort(myList2); を使用しない場合、出力は false になります。

同じ sort() メソッドを順序付けされていない値に適用できますが、オブジェクトと要素は同じです。次に、.equals() を使用できます。

ライブデモ:

配列リストを比較する前に並べ替える

著者: Sarwan Soomro
Sarwan Soomro avatar Sarwan Soomro avatar

Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.

LinkedIn

関連記事 - Java Method

関連記事 - Java ArrayList