Java で ArrayLists を比較する
Javaには、文字列クラスや配列リストなどを比較するための簡単なメソッドがあります。このチュートリアルでは、まず、文字列クラスと配列リストを比較する方法を説明します。
このチュートリアルでは、最初に、Java の比較メソッドを使用して 2つの配列リストを比較します。また、配列リストに適用する前に、同じメソッドを Java 文字列に適用します。
最後に、比較する前に順序付けされていない配列リストを並べ替える方法を示します。
Java で配列リストを比較する
Java には、配列リスト内のオブジェクト、サイズ、および要素を比較するための組み込みメソッドがあります。同じ出力を取得するために使用できる方法はたくさんありますが、最も簡単な方法であるため、次の方法を使用します。
Java の .equals()
関数
Java のこの関数は、ユーザー指定のオブジェクトをこのリストと比較します。
構文構造:
ArrayList1.equals(ArrayList2)
パラメータ:オブジェクトのみ。この場合、ArrayList2
は単一のパラメーターとして渡されるオブジェクトです。
このメソッドは、以下に基づいてブール値の true
または false
を返します。
- ユーザー指定のオブジェクトがリストでもある場合。
- 両方のリストのサイズは同じです。
- 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 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 Streams での flush() メソッドの使用
- Java で wait() メソッドと notify() メソッドを使用する
- Java でのメソッド チェーン
- Java での静的メソッドのオーバーライドとオーバーロード
- Java のオプションの ifPresent()
- Java のカスタム ヘルパー メソッド