[Java] HashCode et remplacement égal

  1. Object HashCode () et equals () image.png image.png comme mentionné ci-dessus, equals () compare les adresses de obj. hashCode () est calculé du côté natif. En d'autres termes, il est calculé du côté C / C ++.

Ensuite, en comparant ==, cela devient faux. image.png

  1. String HashCode () et equals () La chaîne hérite de l'objet. image.png

String remplace HashCode () et equals (). image.png

image.png Le ci-dessus est égal à

  1. Vrai si l'objet a la même adresse

  2. False si la classe de chaînes de comparaison n'est pas String

  3. Faux si les longueurs de classe des chaînes de comparaison ne sont pas les mêmes 4, comparer en boucle, faux si faux

  4. Vrai lorsque la boucle est terminée

  5. HashCode () et equals () seuls

    private static class Person { int age; String name;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String toString() {
        return name + " - " +age;
    }
    
    /**
     * @desc
     */
    @Override
    public boolean equals(Object obj){
        if(obj == null){
            return false;
        }
    
        if(this == obj){
            return true;
        }
    
        if(this.getClass() != obj.getClass()){
            return false;
        }
    
        Person person = (Person)obj;
        return name.equals(person.name) && age==person.age;
    }
    
    @Override
    public int hashCode() {
    	return this.name.hashCode();
    }
    

    }

Exemple de code https://github.com/YanHengGo/java/tree/master/04_hashcode

Recommended Posts

[Java] HashCode et remplacement égal
Comprendre equals et hashCode en Java
[Java] Différence entre == et égal
Histoire de remplacement C # et Java
== et égal
À propos des méthodes equals () et hashcode ()
[Java débutant] == opérateur et méthode equals
[Java] Que sont les remplacements et les surcharges?
Recommandation de l'opération set par Java (et compréhension de equals et hashCode)
Java et JavaScript
XXE et Java
Java vrai et faux
[Java] Comparaison des chaînes de caractères et && et ||
Java - Sérialisation et désérialisation
[Java] Arguments et paramètres
timedatectl et Java TimeZone
[Java] Branchement et répétition
[Java] Types de variables et types
java (classe et instance)
[Java] Surcharge et remplacement
La comparaison d'énumération est ==, et equals est bonne [Java]
[Java] À propos de Objects.equals () et examen de la comparaison de chaînes (== et égal à)
Etudier Java # 2 (\ marque et opérateur)
Java version 8 et fonctionnalités ultérieures
Les égaux Java sont assez désagréables
[Java] Classe générique et méthode générique
Programmation Java (variables et données)
Java et Iterator Part 1 External Iterator Edition
Instructions Java if et switch
J'ai été piégé lorsque j'ai généré mes propres égaux de classe et hashCode en Java à l'aide de l'IDE
Définition et instanciation de classe Java
Apache Hadoop et Java 9 (partie 1)
[Java] À propos de String et StringBuilder
☾ Instruction Java / Repeat et instruction de contrôle de répétition
Méthodes Java et surcharges de méthodes
java Generics T et? Différence
Avantages et inconvénients de Java
java (branchement conditionnel et répétition)
À propos du package Java et de l'importation
[Java] Téléchargez une image et convertissez-la en Base64
Méthodes et classes abstraites Java
Instructions Java while et for
Encapsulation Java et getters et setters
[Lire Java effectif] Chapitre 3 Rubrique 9 "Lors de la substitution d'égaux, toujours remplacer hashCode"
Différence entre l'opérateur == et la méthode égale
J'ai comparé les constructeurs PHP et Java
Différences entre Java "débutant" et Kotlin
Utiliser java avec MSYS et Cygwin
Traçage distribué avec OpenCensus et Java
[Java] Différence entre Hashmap et HashTable
Déclaration, initialisation et types de variables Java
Insertion Java Excel et extraction d'images
Installez Java et Tomcat avec Ansible
SDK AWS pour Java 1.11.x et 2.x
[Java] Types de base et notes d'instructions
Date de sortie de Java et résumé EOL
Java et fonctions principales - au-delà de l'interface fonctionnelle -
À propos de Biocontainers fastqc et Java
Java pour les débutants, les expressions et les opérateurs 1
Série Java Primer (variations et types)
Exemple d'encodage et de décodage en Java