Compare dois inteiros em Java

Mohammad Irfan 12 outubro 2023
  1. Compare dois valores inteiros usando o operador == em Java
  2. Compare duas referências inteiras usando o método equals() em Java
  3. Compare dois inteiros usando o método equals() em Java
  4. Não compare duas referências inteiras usando o operador == em Java
Compare dois inteiros 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.

Artigo relacionado - Java Integer