HOWTO · Java

Compare dois inteiros em Java

Este artigo apresenta como comparar 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.