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.