Heim >Java >javaLernprogramm >Detaillierte Erläuterung der Verwendung und anwendbaren Szenarien der Methode equals in Java

Detaillierte Erläuterung der Verwendung und anwendbaren Szenarien der Methode equals in Java

WBOY
WBOYOriginal
2024-01-11 11:55:00945Durchsuche

Detaillierte Erläuterung der Verwendung und anwendbaren Szenarien der Methode equals in Java

Detaillierte Erläuterung der Methode equal(Object) in Java und ihrer Verwendungsszenarien

In Java ist die Methode equal(Object) eine sehr wichtige Methode, mit der verglichen wird, ob zwei Objekte gleich sind. In diesem Artikel werden wir die Verwendungsszenarien und Prinzipien der Methode equal(Object) ausführlich erläutern und einige gängige Verwendungstechniken vorstellen.

1. Das Prinzip der Methode equal(Object)

In Java erben alle Klassen von der Object-Klasse, und die Methode equal(Object) in der Object-Klasse ist eine Standardimplementierung. Die Methode equal(Object) in der Object-Klasse vergleicht tatsächlich, ob die Referenzen zweier Objekte gleich sind, das heißt, ob die beiden Objekte dasselbe Objekt sind. Die spezifische Implementierung lautet wie folgt:

public boolean equals(Object obj) {

return (this == obj);

}

In vielen Fällen müssen wir vergleichen, ob die Inhalte zweier Objekte gleich sind, nicht nur Referenzen. Daher müssen wir die Methode equal(Object) in einer benutzerdefinierten Klasse überschreiben, um unseren Anforderungen gerecht zu werden.

2. Verwendungsszenarien der Methode equal(Object)

  1. Vergleichen von Werten von Grundtypen

Wenn wir Werte von zwei Grundtypen vergleichen müssen, können wir den Operator == direkt verwenden. Vergleichen Sie beispielsweise zwei ganze Zahlen auf Gleichheit:

int a = 10;
int b = 10;
if (a == b) {

System.out.println("a和b相等");

}

  1. Vergleichen von Referenztypwerten

Wenn wir brauchen Zum Vergleichen Bei Verwendung von zwei Referenztypwerten sollte die Methode equal(Object) verwendet werden. Vergleichen Sie beispielsweise zwei Zeichenfolgen auf Gleichheit:

String str1 = „Hallo“;
String str2 = „Hallo“;
Wenn wir Objekte einer benutzerdefinierten Klasse vergleichen müssen, sollten wir die Methode equal(Object) in der Klasse überschreiben, um den Inhalt der Objekte zu vergleichen. Vergleichen Sie beispielsweise zwei Person-Objekte auf Gleichheit:

public class Person {

System.out.println("str1和str2相等");
    }
  1. Person person1 = new Person("Zhang San", 20);
Person person2 = new Person("Zhang San", 20) ;

if (person1.equals(person2)) {

private String name;
private int age;

// 构造方法和其他方法省略

@Override
public boolean equals(Object obj) {
    if (this == obj) {
        return true;
    }
    if (obj == null || getClass() != obj.getClass()) {
        return false;
    }
    Person person = (Person) obj;
    return age == person.age && Objects.equals(name, person.name);
}

}

3. Tipps zur Verwendung der equal(Object)-Methode


Befolgen Sie die Konvention der equal(Object)-Methode

beim Umschreiben von equal( Object)-Methode Wenn Sie die Konvention der equal(Object)-Methode befolgen müssen, müssen die folgenden Bedingungen erfüllt sein:

Reflexivität: Für jeden Referenzwert x ungleich Null sollte x.equals(x) zurückgegeben werden WAHR.
  1. Symmetrie: Wenn x.equals(y) für alle Referenzwerte ungleich Null x und y true zurückgibt, sollte y.equals(x) auch true zurückgeben.
Transitivität: Wenn für alle Referenzwerte x, y und z ungleich Null x.equals(y) true zurückgibt und y.equals(z) ebenfalls true zurückgibt, sollte auch x.equals(z) zurückgegeben werden WAHR .

Konsistenz: Für alle Referenzwerte x und y ungleich Null sollte das Ergebnis von x.equals(y) immer konsistent sein, wenn sich der Wert im Objekt nicht ändert.
  • Nicht-Nullbarkeit: Für jeden Referenzwert x ungleich Null sollte x.equals(null) false zurückgeben.
  • Verwenden Sie die Objects.equals-Methode
  • Beim Vergleichen des Inhalts von Objekten können wir die von Java bereitgestellte Objects.equals-Methode verwenden, die den Fall von Nullwerten automatisch behandelt. Um beispielsweise zwei Zeichenfolgen auf Gleichheit zu vergleichen, können Sie den folgenden Code verwenden:
  • String str1 = "Hello";
String str2 = "Hello";
    if (Objects.equals(str1, str2)) {
  1. System.out.println("person1和person2相等");
  2. }

NullPointerException kann durch die Verwendung der Objects.equals-Methode vermieden werden.

4. Zusammenfassung

Dieser Artikel stellt die Methode equal(Object) in Java und ihre Verwendungsszenarien im Detail vor. In der tatsächlichen Entwicklung müssen wir häufig vergleichen, ob der Inhalt zweier Objekte gleich ist. Daher ist es sehr wichtig, die Methode equal(Object) zu überschreiben. Indem wir der Konvention der Methode equal(Object) folgen und die Methode Objects.equals verwenden, können wir den Inhalt von Objekten genauer und sicherer vergleichen. Ich hoffe, dieser Artikel wird Ihnen helfen, ein tieferes Verständnis der Methode equal(Object) und ihrer Verwendungsszenarien zu erlangen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung und anwendbaren Szenarien der Methode equals in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn