[Java] HashCode und gleich Überschreibung

  1. Objekt HashCode () und equals () image.png image.png Wie oben beschrieben, equals () vergleicht die Adressen von obj. hashCode () wird auf der nativen Seite berechnet. Mit anderen Worten, es wird auf der C / C ++ - Seite berechnet.

Wenn Sie dann == vergleichen, wird es falsch. image.png

  1. String HashCode () und equals () String erbt Objekt. image.png

String überschreibt HashCode () und equals (). image.png

image.png Das obige ist gleich

  1. True, wenn das Objekt dieselbe Adresse hat

  2. False, wenn die Vergleichszeichenfolgenklasse nicht String ist

  3. False, wenn die Klassenlängen der Vergleichszeichenfolgen nicht gleich sind 4, vergleiche in Schleife, falsch, wenn falsch

  4. True, wenn die Schleife abgeschlossen ist

  5. HashCode () und equals () alleine

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

    }

Beispielcode https://github.com/YanHengGo/java/tree/master/04_hashcode

Recommended Posts

[Java] HashCode und gleich Überschreibung
Verstehe gleich und hashCode in Java
[Java] Unterschied zwischen == und gleich
C # und Java überschreiben Story
== und gleich
Informationen zu den Methoden equals () und hashcode ()
[Java-Anfänger] == Operator und Gleiche Methode
[Java] Was sind Überschreibungen und Überladungen?
Empfehlung der Set-Operation durch Java (und Verständnis von Equals und HashCode)
Java und JavaScript
XXE und Java
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
timedatectl und Java TimeZone
[Java] Verzweigen und Wiederholen
[Java] Variablen- und Typtypen
Java (Klasse und Instanz)
[Java] Überladen und überschreiben
Der Vergleich von enum ist == und gleich ist gut [Java]
[Java] Über Objects.equals () und Überprüfung des String-Vergleichs (== und gleich)
Studiere Java # 2 (\ mark and operator)
Java Version 8 und neuere Funktionen
Java-Gleichstellungen sind ziemlich unangenehm
[Java] Generics-Klasse und Generics-Methode
Java-Programmierung (Variablen und Daten)
Java und Iterator Teil 1 Externe Iterator Edition
Java if- und switch-Anweisungen
Ich steckte in einer Falle fest, als ich meine eigenen Klassen equals und hashCode in Java mit IDE generierte
Definition und Instanziierung von Java-Klassen
Apache Hadoop und Java 9 (Teil 1)
[Java] Über String und StringBuilder
☾ Java / Repeat-Anweisung und Repeat-Steueranweisung
Java-Methoden und Methodenüberladungen
Java Generics T und? Unterschied
Vor- und Nachteile von Java
Java (bedingte Verzweigung und Wiederholung)
Über Java-Paket und Import
[Java] Laden Sie ein Bild hoch und konvertieren Sie es in Base64
Java abstrakte Methoden und Klassen
Java während und für Anweisungen
Java-Kapselung und Getter und Setter
[Read Effective Java] Kapitel 3 Punkt 9 "Wenn Sie equals überschreiben, überschreiben Sie immer hashCode"
Unterschied zwischen == Operator und Methode gleich
Ich habe PHP- und Java-Konstruktoren verglichen
Unterschiede zwischen "Anfänger" Java und Kotlin
Verwenden Sie Java mit MSYS und Cygwin
Verteilte Ablaufverfolgung mit OpenCensus und Java
[Java] Unterschied zwischen Hashmap und HashTable
Deklaration, Initialisierung und Typen von Java-Variablen
Java Excel Insertion und Bildextraktion
Installieren Sie Java und Tomcat mit Ansible
AWS SDK für Java 1.11.x und 2.x.
[Java] Grundtypen und Anweisungshinweise
Java-Veröffentlichungsdatum und EOL-Zusammenfassung
Java und primäre Funktionen - jenseits funktionaler Schnittstellen -
Über Biocontainer fastqc und Java
Java für Anfänger, Ausdrücke und Operatoren 1
Java Primer Series (Variationen und Typen)
Beispiel für Codierung und Decodierung in Java