Java将2个整数与equals或==进行比较?

时间:2015-03-09 23:48:28

标签: java int compare equals

我非常非常熟悉Java,我想知道如何比较2个整数?我知道==完成工作......但是等于什么?这可以比较2个整数吗? (当我说整数时,我的意思是" int" not" Integer")。 我的代码是:

import java.lang.*;
import java.util.Scanner;
//i read 2 integers the first_int and second_int
//Code above
if(first_int.equals(second_int)){
//do smth
}
//Other Code

但由于某些原因,这不起作用..我的意思是Netbeans给了我一个错误:" int不能被解除引用"为什么呢?

4 个答案:

答案 0 :(得分:15)

int是一个原始人。您可以使用包装器Integer,如

Integer first_int = 1;
Integer second_int = 1;
if(first_int.equals(second_int)){ // <-- Integer is a wrapper.

或者您可以按值(因为它是基本类型)进行比较,如

int first_int = 1;
int second_int = 1;
if(first_int == second_int){ // <-- int is a primitive.

JLS-4.1. The Kinds of Types and Values说(部分)

  

Java编程语言中有两种类型:基本类型(§4.2)和引用类型(§4.3)。相应地,有两种数据值可以存储在变量中,作为参数传递,由方法返回,并在以下操作:原始值(§4.2)和参考值(§4.3)。

答案 1 :(得分:2)

如果你想比较

1-two integer 
If(5==5)
2- char
If('m'=='M')
3 string
String word="word"
word.equals("word")

答案 2 :(得分:1)

因为int是原始的,所以你不能使用equals。 你可以做什么 使用Interger作为包装器

 void IntEquals(Integer original, Integer reverse) {
        Integer origianlNumber = original;
        Integer reverseNumber = reverse;

        if (origianlNumber.equals(reverse)) {
            System.out.println("Equals ");
        } else {
            System.out.println("Not Equal");
        }

答案 3 :(得分:0)

int是原始类型,它本身具有值,但是Integer是对象,并且内部具有原始int类型来保存值。 通过使用包装整数,您可以执行更多操作,例如compare,longValue,.. more。

==对于整数will not work the rang above -128 and 127。整数保持高速缓存值只能在内存中达到此范围。超过此范围,您仅需要equals()方法来检查Integer包装器类。

equals()方法将检查存储在参考位置中的值。