[JAVA] Informationen zu den Methoden equals () und hashcode ()

Ich bin neu in Java.

Dieses Mal habe ich eine Klasse namens Information erstellt und darin ** ・ Adresse [String] ** ** ・ Telefon (Telefonnummer) [String] ** Ich habe ein Feld namens gemacht. Zusätzlich haben wir für jeden Artikel Getter und Setter vorbereitet.

Um eine Kontaktsuchfunktion zu erstellen, erstellen Sie als Nächstes eine Personenklasse und darin ** ・ name [String] ** ** ・ Geburtstag [int] ** ** ・ Informationen [Informationen] ** Ich habe ein Feld namens erstellt, den Namen, den Geburtstag und die Informationen nach dem Faktor des Konstruktors festgelegt und jeden Getter vorbereitet.

Als Nächstes habe ich versucht, der Informationsklasse die folgenden drei Methoden hinzuzufügen. ** ・ toString () ** ** ・ entspricht () ** ** · Hash-Code () **

Wenn die Informationen zu diesem Zeitpunkt korrekt sind, bedeutet dies, dass Adresse und Telefonnummer übereinstimmen. Außerdem gibt toString () jetzt alle Felder als Zeichenfolgen zurück.

toString () und equals () wurden irgendwie abgeschlossen, basierend auf Informationen im Netz. Ich habe jedoch Probleme, weil ich Hashcode () nicht verstehe.

Der Code, den ich jetzt geschrieben habe, ist unten. Ich denke, es gibt viele Punkte, die außer hashcode () nicht erreicht werden können. Ich wäre Ihnen dankbar, wenn Sie auch diese Punkte kommentieren könnten.

Person.class



public class Person {

  private String name;
  private int birthday;
  private Information information;

  public Person(String name, int birthday, Information information) {
    this.name = name;
    this.birthday = birthday;
    this.information = information;
  }

  public String getName() {
    return this.name;
  }

  public int getBirthday() {
    return this.birthday;
  }

  public Information getInformation() {
    return this.information;
  }
}

Information.class



public class Information {

  private String address;
  private String phone;

  public Information() {}

  public String getAddress() {
    return this.address;
  }

  public String getPhone() {
    return this.phone;
  }

  public void setAddress(String address) {
    this.address = address;
  }

  public void setPhone(String phone) {
    this.phone = phone;
  }

	public String toString(){
    String str = address+","+phone;
    return str;
  }
  
  public boolean equals(Object other) {
    
     if (this == other) { 
            return true;
        }

     if (!(other instanceof Information)) { 
            return false;               // 
        }

        Information otherInformation = (Information) other;
     if ((this.address == otherInformation.getAddress()) && (this.phone == otherInformation.getPhone())){ 
            return true;
        }
        return false;
    }
  
	public int hashcode(){
   //Ich weiß es nicht.
  }

}

Recommended Posts

Informationen zu den Methoden equals () und hashcode ()
Ungefähr der gleiche und der gleiche Wert
[Java] HashCode und gleich Überschreibung
Über die Zupfmethode und die ID-Methode
Informationen zur Beziehung zwischen HTTP-Methoden, Aktionen und CRUD
Informationen zu statischen und nicht statischen Java-Methoden
== und gleich
Verstehe gleich und hashCode in Java
Denken Sie über die Unterschiede zwischen Funktionen und Methoden nach (in Java)
Informationen zur Funktionsweise von next () und nextLine ()
Über den Unterschied zwischen irb und pry
Über singuläre Methoden
Über die Methode von HttpServlet ()
Über die Methode
Funktionen und Methoden
Über das Paket
Über Ruby-Methoden
Denken Sie an die Kombination von Servlet und Ajax
[Rails / Active Record] Über den Unterschied zwischen create und create!
Informationen zu next () und nextLine () der Scannerklasse
Ein Memo über den Fluss von Rails und Vue
Ausgabe über die Methode, Teil 2
[Ruby] Ich habe über den Unterschied zwischen each_with_index und each.with_index nachgedacht
Informationen zur StringBuilder-Klasse
Kommentar: Über die Schnittstelle
Der Vergleich von enum ist == und gleich ist gut [Java]
Über die Asset-Pipeline
Über die Doppelfunktion -java
[Grails] Über den Einstellungsbereich und die Einstellungselemente von application.yml
Über Bean und DI
Über Klassen und Instanzen
Unterschiede zwischen Klassen und Instanzen in Ruby
Über den ternären Operator
Über bekommt und bekommt.chomp
Informationen zu Ruby-Instanzmethoden
Über die Längenmethode
Informationen zum Aufrufen von Instanzmethoden
Über Weiterleiten und Weiterleiten
Informationen zum Kernel-Modul
[Java] Über Objects.equals () und Überprüfung des String-Vergleichs (== und gleich)
Informationen zum Laden und Initialisieren von Klassen beim Start der JVM
Über Kapselung und Vererbung
[Technisches Memo] Über die Vor- und Nachteile von Ruby
Über die Kartenmethode
Informationen zu Serializable und serialVersionUID
Über die Ahnenmethode
[Ausgabe] Informationen zur Datenbank
Informationen zur to_s-Methode.
[Ruby] Fragen und Überprüfung der Anzahl der Methodenargumente
Empfehlung der Set-Operation durch Java (und Verständnis von Equals und HashCode)
Überschreiben wir den Unterschied zwischen == (Identität) und der Methode equals (Äquivalenz).
[Java] Ich habe über die Vorzüge und Verwendungen von "Schnittstelle" nachgedacht.
Über den Umgang mit Null