2 つのオブジェクトを比較する Java プログラム
###############導入###
Java では、equals() メソッドを使用してオブジェクトを比較できます。このメソッドは、オブジェクトのプロパティに基づいて 2 つのオブジェクトが等しいかどうかを判断します。 Java でオブジェクトを比較する場合、クラス内の equals() メソッドをオーバーライドして、必要なプロパティに基づいて比較が行われるようにすることが非常に重要です。
###方法###
標準的な方法は 2 つあります
equals() メソッドを使用する
######カバーされていません###### オーバーライドを使用する
-
-
- クラスでequals()メソッドをオーバーライドすると、オブジェクトのプロパティに基づいたカスタム比較が可能になります。
###方法###
名前と年齢に基づいて 2 つの Person オブジェクトを比較するために、Person クラスの equals() メソッドをオーバーライドしました。 equals() メソッドは Object パラメータを受け入れます。最初に、パラメータが空でなく、Person クラスのインスタンスであるかどうかを確認します。次に、そのオブジェクトを Person オブジェクトに変換し、その名前と年齢のプロパティを現在のオブジェクトの名前と年齢のプロパティと比較します。
- main() メソッドでは、名前と年齢の値が異なる 2 つの Person オブジェクトを作成します。
-
- の中国語訳は次のとおりです:
説明
この例では、名前と年齢が異なる 2 つの Person オブジェクトを作成し、最初のオブジェクトの equals メソッドを呼び出して、2 番目のオブジェクトと比較します。 equals メソッドは Person クラスで定義されており、両方のオブジェクトが同じ名前と年齢プロパティを持つかどうかを確認します。最後に、比較の結果をコンソールに出力します。 -
###出力###
リーリー
例 2:equals() メソッドをオーバーライドしない
quals() メソッドはオーバーライドされず、オブジェクトはプロパティではなく参照に基づいて比較されます。 -
###方法###
名前と年齢を受け入れ、これらの値でインスタンス変数を初期化する Person クラスのコンストラクターを定義します。
main() メソッドでは、同じ名前と年齢の値を持つ 2 つの Person オブジェクトを作成します。
最初の Person オブジェクトで equals() メソッドを呼び出し、2 番目の Person オブジェクトをパラメータとして渡します。 Person クラスの equals() メソッドをオーバーライドしていないため、Object クラスから継承された equals() メソッドのデフォルトの実装が使用されます。実装は、2 つのオブジェクトが同じオブジェクトである (つまり、同じメモリ アドレスを持つ) かどうかをチェックし、同じである場合は true を返します。 person1 オブジェクトと person2 オブジェクトのメモリ アドレスは異なるため、equals() メソッドは false を返します。
- 最後に、System.out.println() を使用して比較結果をコンソールに出力します。
-
- の中国語訳は次のとおりです:
説明
この例では、名前と年齢が同じ 2 つの Person オブジェクトを作成し、equals メソッドを呼び出して最初のオブジェクトと 2 番目のオブジェクトを比較します。 Person クラスの equals メソッドをオーバーライドしていないため、Object クラスから継承されたデフォルトの実装が使用されます。この実装は、2 つのオブジェクトが同じオブジェクトである (つまり、同じメモリ アドレスを持つ) かどうかをチェックし、そうである場合は true を返します。 person1 オブジェクトと person2 オブジェクトのメモリ アドレスが異なるため、equals メソッドは false を返します。最後に、比較の結果をコンソールに出力します。 -
###出力###
リーリー
例 3: hashCode() メソッドとquals() メソッドの使用
quals() メソッドはオーバーライドされず、オブジェクトはプロパティではなく参照に基づいて比較されます。 -
###方法###
Person クラスでは、hashCode() メソッドをオーバーライドし、Objects.hash() メソッドを使用して、オブジェクトの名前と年齢属性に基づいてハッシュ コードを生成します。
然后我们重写equals()方法,根据它们的姓名和年龄属性来比较两个Person对象。该方法首先检查对象是否属于同一类,如果是,则使用Objects.equals()方法检查它们的姓名和年龄属性是否相等。
在main()方法中,我们使用&&运算符通过hashCode()方法检查person1和person2的哈希码是否相同,并且通过equals()方法返回true。
最后,我们打印出一个消息,指示这些对象是否相等。
public class ObjectComparator { public static void main(String[] args) { // Create two objects to compare Person person1 = new Person("Alice", 25); Person person2 = new Person("Alice", 25); // Compare the two objects using hashCode and equals methods boolean areEqual = person1.hashCode() == person2.hashCode() && person1.equals(person2); System.out.println("Are the two objects equal? " + areEqual); } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public int hashCode() { return Objects.hash(name, age); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!(obj instanceof Person)) return false; Person other = (Person) obj; return Objects.equals(name, other.name) && age == other.age; } }
Explanation
的中文翻译为:解释
在这个例子中,我们创建了两个具有相同姓名和年龄的Person对象,然后调用第一个对象的hashCode()和equals()方法来与第二个对象进行比较。
在Person类中,我们重写了hashCode()和equals()方法,以便根据它们的name和age属性来比较对象。hashCode()方法返回name和age属性的组合的哈希码,equals()方法检查对象是否属于同一类,并且具有相同的name和age属性。
最后,我们使用&&运算符来检查两个对象的哈希码是否相同,并且equals()方法是否返回true。如果两个条件都为true,我们打印出对象相等的信息。否则,我们打印出对象不相等的信息。
输出
The two person objects are equal
结论
这个Java程序使用equals()方法来比较两个Person对象的属性,该方法已在Person类中被重写。
该程序展示了定制对象比较的重要性,并突出了Java在实现自定义比较逻辑方面提供的灵活性。
以上が2 つのオブジェクトを比較する Java プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java のアームストロング番号に関するガイド。ここでは、Java でのアームストロング数の概要とコードの一部について説明します。

Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです
