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.