Compara dos enteros en Java

Mohammad Irfan 12 octubre 2023
  1. Compare dos valores enteros usando el operador == en Java
  2. Comparar dos referencias enteras usando el método equals() en Java
  3. Comparar dos enteros usando el método equals() en Java
  4. No compare dos referencias enteras usando el operador == en Java
Compara dos enteros en Java

Este tutorial presenta cómo comparar dos enteros en Java.

Para comparar valores enteros en Java, podemos usar el método equals() o == (operador igual). Ambos se utilizan para comparar dos valores, pero el operador == comprueba la igualdad de referencia de dos objetos enteros, mientras que el método equal() comprueba sólo los valores enteros (primitivos y no primitivos).

Por lo tanto, al comparar los valores enteros, depende de los desarrolladores elegir entre los métodos de comparación. Veamos algunos ejemplos.

Compare dos valores enteros usando el operador == en Java

En este ejemplo, tomamos dos números enteros primitivos y luego, usando el operador ==, comparamos ambos valores. Probamos este ejemplo usando Java 15. Vea el ejemplo a continuación.

public class SimpleTesting {
  public static void main(String[] args) {
    int a = 18;
    int b = 18;
    if (a == b) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

Producción :

Both are equal

Comparar dos referencias enteras usando el método equals() en Java

Podemos usar el método equals() para comparar dos enteros en Java. Devuelve verdadero si ambos objetos son iguales; de lo contrario, devuelve falso. Vea el ejemplo a continuación.

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = new Integer(18);
    Integer b = new Integer(18);
    if (a.equals(b)) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

Producción :

Both are equal

Comparar dos enteros usando el método equals() en Java

Aquí, estamos comparando dos referencias enteras usando el método equals().

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 10;
    Integer b = 10;
    if (a.equals(b)) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

Producción :

Both are equal

No compare dos referencias enteras usando el operador == en Java

No deberíamos usar el operador == para comparar dos valores enteros porque comprueba la igualdad de la referencia.

Java almacena en caché el valor Integer en el rango de -128 a 127. Por lo tanto, cuando dos objetos enteros tienen el mismo valor en este rango, el comparador == devolverá true porque se refieren al mismo objeto. Pero devolverá false para cualquier valor fuera de este rango.

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 18;
    Integer b = 18;
    if (a == b) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

Producción :

Both are equal
public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 150;
    Integer b = 150;
    if (a == b) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

Producción :

Not equal

Como puede ver arriba, no deberíamos usar == para comparar dos valores Integer.

Artículo relacionado - Java Integer