Mehmet Ethem SULAN :: Java Programlama Dili :: HashCode and Equals method in Java
package www.ethemsulan.com;

public class HashKodlari {

  private String nesnem;
  public String getNesnem() {
    return nesnem;
  }
  public void setNesnem(String nesnem) {
    this.nesnem = nesnem;
  }

  public HashKodlari(String string) {
    setNesnem(string);
  }

  public static void main(String[] args) {
    HashKodlari nesnem1=new HashKodlari("ethem");
    HashKodlari nesnem2=new HashKodlari("ethem");
    if(nesnem1.equals(nesnem2)){
      System.out.println("nesneler esittir");
    }else{
      System.out.println("Nesneler esit degil");
    }
  }
}

Yukardaki nesnem1 ve nesnem2 ye baktığımızda eşit olması gerekirler.Çünkü ikisinin de aldığı değer ethem ve sınıfları da aynı olmasına rağmen else kısmı yani eşit değil çıktısını alıyoruz. private olarak tanımladığımız nesneyi sağ tıklayıp source den Generate hashCode and equals tıklayıp hash kodlarını eşitlediğimizde ekran çıktımız eşit yani if ksımı çalışır.

hash

package www.ethemsulan.com;

public class HashKodlari {

  private String nesnem;
  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((nesnem == null) ? 0 : nesnem.hashCode());
    return result;
  }

  @Override
  public boolean equals(Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    HashKodlari other = (HashKodlari) obj;
    if (nesnem == null) {
      if (other.nesnem != null)
        return false;
    } else if (!nesnem.equals(other.nesnem))
      return false;
    return true;
  }

  public String getNesnem() {
    return nesnem;
  }

  public void setNesnem(String nesnem) {
    this.nesnem = nesnem;
  }

  public HashKodlari(String string) {
    setNesnem(string);
  }

  public static void main(String[] args) {
    HashKodlari nesnem1=new HashKodlari("ethem");
    HashKodlari nesnem2=new HashKodlari("ethem");
    if(nesnem1.equals(nesnem2)){
      System.out.println("nesneler esittir");
    }else{
      System.out.println("Nesneler esit degil");
    }
  }
}

Eclipse kendisi hash kodlarını eşlitliyor ve şu an iki nesnelerin her şeyi aynı olmuş oluyor. Yanı aynı nesne oluyorlar.Eğer ben new hashKodlari(“ethem sulan”); yaparsam zaten bu iki nesne esit olmuyor.

Write a Comment

Let me know what you think?