Maison  >  Article  >  Java  >  Explication détaillée de l'utilisation et des scénarios applicables de la méthode égale en Java

Explication détaillée de l'utilisation et des scénarios applicables de la méthode égale en Java

WBOY
WBOYoriginal
2024-01-11 11:55:00865parcourir

Explication détaillée de lutilisation et des scénarios applicables de la méthode égale en Java

Explication détaillée de la méthode égal(Object) en Java et ses scénarios d'utilisation

En Java, la méthode égal(Object) est une méthode très importante, qui est utilisée pour comparer si deux objets sont égaux. Dans cet article, nous expliquerons en détail les scénarios d'utilisation et les principes de la méthode equals(Object), et présenterons quelques techniques d'utilisation courantes.

1. Le principe de la méthode equals(Object)

En Java, toutes les classes héritent de la classe Object, et la méthode equals(Object) dans la classe Object est une implémentation par défaut. La méthode equals(Object) de la classe Object compare en fait si les références de deux objets sont égales, c'est-à-dire si les deux objets sont le même objet. L'implémentation spécifique est la suivante :

public boolean equals(Object obj) {

return (this == obj);

}

Dans de nombreux cas, ce que nous devons comparer est de savoir si le contenu de deux objets est égal, pas seulement des références. Par conséquent, nous devons remplacer la méthode equals(Object) dans une classe personnalisée pour répondre à nos besoins.

2. Scénarios d'utilisation de la méthode equals(Object)

  1. Comparer les valeurs des types de base

Lorsque nous devons comparer les valeurs de deux types de base, nous pouvons utiliser directement l'opérateur ==. Par exemple, comparer deux entiers pour l'égalité :

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

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

}

  1. Comparaison des valeurs de type référence

Quand nous avons besoin pour comparer Lorsque vous utilisez deux valeurs de type référence, la méthode equals(Object) doit être utilisée. Par exemple, comparez deux chaînes pour l'égalité :

String str1 = "Hello";
String str2 = "Hello"
if (str1.equals(str2)) {

System.out.println("str1和str2相等");

}

  1. Comparaison des classes personnalisées

Lorsque nous devons comparer des objets d'une classe personnalisée, nous devons remplacer la méthode equals(Object) dans la classe pour comparer le contenu des objets. Par exemple, comparez deux objets Person pour l'égalité :

public class Person {

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);
}

}

Person person1 = new Person("Zhang San", 20);
Person person2 = new Person("Zhang San", 20) ;
if (person1.equals(person2)) {

System.out.println("person1和person2相等");

}

3. Conseils pour utiliser la méthode Equals(Object)

  1. Suivez la convention de la méthode Equals(Object)

lors de la réécriture de Equals( Object) Lorsque vous devez suivre la convention de la méthode equals(Object), c'est-à-dire que les conditions suivantes sont remplies :

  • Réflexivité : pour toute valeur de référence non nulle x, x.equals(x) doit renvoyer vrai.
  • Symétrie : pour toute valeur de référence non nulle x et y, si x.equals(y) renvoie vrai, y.equals(x) devrait également renvoyer vrai.
  • Transitivité : pour toute valeur de référence non nulle x, y et z, si x.equals(y) renvoie vrai et que y.equals(z) renvoie également vrai, x.equals(z) devrait également renvoyer vrai .
  • Cohérence : pour toute valeur de référence non nulle x et y, si la valeur dans l'objet ne change pas, le résultat de x.equals(y) doit toujours être cohérent.
  • Non-nullabilité : pour toute valeur de référence non nulle x, x.equals(null) doit renvoyer false.
  1. Utiliser la méthode Objects.equals

Lors de la comparaison du contenu des objets, nous pouvons utiliser la méthode Objects.equals fournie par Java, qui gérera automatiquement le cas des valeurs nulles. Par exemple, pour comparer deux chaînes pour l'égalité, vous pouvez utiliser le code suivant :

String str1 = "Bonjour";
String str2 = "Bonjour";
if (Objects.equals(str1, str2)) {

System.out.println("str1和str2相等");

}

NullPointerException peut être évitée en utilisant la méthode Objects.equals.

4. Résumé

Cet article présente en détail la méthode equals(Object) en Java et ses scénarios d'utilisation. Dans le développement réel, nous avons souvent besoin de comparer si le contenu de deux objets est égal, il est donc très important de remplacer la méthode equals(Object). En suivant la convention de la méthode equals(Object) et en utilisant la méthode Objects.equals, nous pouvons comparer le contenu des objets avec plus de précision et de sécurité. J'espère que cet article vous aidera à mieux comprendre la méthode equals(Object) et ses scénarios d'utilisation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn