Ejemplo de otros tipos de equivalencia

La equivalencia puede depender de las propiedades algebráicas del tipo de objeto de que se trate. Por ejemplo:

Fraccion.java

public class Fraccion {

  private int num;

  private int den;

 

  @Override

  public boolean equals(Object x) {

    if (x == this)

      return true;

    if (x == null)

      return false;

    if (x.getClass() != this.getClass())

      return false;

    Fraccion fraccion = (Fraccion)x;

    return this.num * fraccion.den == this.den * fraccion.num;

  }

 

  @Override

  public int hashCode() {

    return num ^ den;

  }

}        

 

Regla: si redefine equals(), debe redefinir hashCode()

Temas relacionados

63. equals (método) public boolean equals(Object)