![](/img/trans.png)
[英]implementing an equals() method to compare contents in two objects filled with integers in java
[英]Java Compare 2 integers with equals or ==?
我是非常非常新的Java,我想知道如何比较2个整数? 我知道==完成工作......但是等于什么? 这可以比较2个整数吗? (当我说整数时,我的意思是“int”而非“整数”)。 我的代码是:
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不能被解除引用”为什么?
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.
有两种类型的Java编程语言:基本类型( 4.2节 )和引用类型( 第4.3节 )。 相应地,有两种数据值可以存储在变量中,作为参数传递,由方法返回,并对其进行操作:原始值( §4.2 )和参考值( §4.3 )。
如果你想比较
1-two integer
If(5==5)
2- char
If('m'=='M')
3 string
String word="word"
word.equals("word")
因为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");
}
int是原始类型。这本身具有值但是Integer是对象,并且内部具有原始int类型来保存值。 您可以使用wrapper Integer执行更多操作,例如compare,longValue,.. more。
== for Integer will not work the rang above -128 and 127
。 整数仅在内存中将缓存值保持在此范围内。 超过此范围,您必须使用equals()方法来检查Integer包装类。
equals()方法将检查存储在引用位置的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.