Compare dois inteiros em Java
- 
          
            Compare dois valores inteiros usando o operador ==em Java
- 
          
            Compare duas referências inteiras usando o método equals()em Java
- 
          
            Compare dois inteiros usando o método equals()em Java
- 
          
            Não compare duas referências inteiras usando o operador ==em Java
 
Este tutorial apresenta como comparar dois inteiros em Java.
Para comparar valores inteiros em Java, podemos usar o método equals() ou == (operador igual). Ambos são usados para comparar dois valores, mas o operador == verifica a igualdade de referência de dois objetos inteiros, enquanto o método equal() verifica apenas os valores inteiros (primitivos e não primitivos).
Portanto, ao comparar os valores inteiros, cabe aos desenvolvedores escolher entre os métodos de comparação. Vamos ver alguns exemplos.
Compare dois valores inteiros usando o operador == em Java
Neste exemplo, pegamos dois inteiros primitivos e, usando o operador ==, comparamos os dois valores. Testamos este exemplo usando Java 15. Veja o exemplo abaixo.
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");
  }
}
Resultado:
Both are equal
Compare duas referências inteiras usando o método equals() em Java
Podemos usar o método equals() para comparar dois inteiros em Java. Ele retorna verdadeiro se os dois objetos forem iguais; caso contrário, retorna falso. Veja o exemplo abaixo.
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");
  }
}
Resultado:
Both are equal
Compare dois inteiros usando o método equals() em Java
Aqui, estamos comparando duas referências de inteiros usando o 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");
  }
}
Resultado:
Both are equal
Não compare duas referências inteiras usando o operador == em Java
Não devemos usar o operador == para comparar dois valores inteiros porque ele verifica a igualdade da referência.
Java armazena em cache o valor Integer no intervalo de -128 a 127. Portanto, quando dois objetos inteiros têm o mesmo valor nesse intervalo, o comparador == retornará true porque eles se referem ao mesmo objeto. Mas retornará false para qualquer valor fora desse intervalo.
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");
  }
}
Resultado:
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");
  }
}
Resultado:
Not equal
Como você pode ver acima, não devemos usar o == para comparar dois valores Integer.