JAVA:当整数大于128时比较不起作用
这是我的Java程序的一部分,我已经取出并简化为测试。任务是比较ArrayList中的两个整数,并说明它们是否相等 下面的代码适用于数字128,但该代码不起作用 任何帮助都会非常好, 谢谢JAVA:当整数大于128时比较不起作用,java,integer,Java,Integer,这是我的Java程序的一部分,我已经取出并简化为测试。任务是比较ArrayList中的两个整数,并说明它们是否相等 下面的代码适用于数字128,但该代码不起作用 任何帮助都会非常好, 谢谢 是的,这是意料之中的。不应将对象引用与==或!=进行比较。你应该使用.equals。。相反,或者更好-使用基本的int而不是整数 问题是,缓存的值最多为128,JVM会给您相同的对象,因此引用比较是有效的。在128以上,它会创建一个新实例。看看javadoc,它就是幕后发生的事情 返回表示指定int值的整数实
是的,这是意料之中的。不应将对象引用与==或!=进行比较。你应该使用.equals。。相反,或者更好-使用基本的int而不是整数 问题是,缓存的值最多为128,JVM会给您相同的对象,因此引用比较是有效的。在128以上,它会创建一个新实例。看看javadoc,它就是幕后发生的事情 返回表示指定int值的整数实例。如果不需要新的整数实例,通常应优先使用此方法而不是构造函数Integerint,因为此方法可能通过缓存频繁请求的值来产生显著更好的空间和时间性能
是的,这是意料之中的。不应将对象引用与==或!=进行比较。你应该使用.equals。。相反,或者更好-使用基本的int而不是整数 问题是,缓存的值最多为128,JVM会给您相同的对象,因此引用比较是有效的。在128以上,它会创建一个新实例。看看javadoc,它就是幕后发生的事情 返回表示指定int值的整数实例。如果不需要新的整数实例,通常应优先使用此方法而不是构造函数Integerint,因为此方法可能通过缓存频繁请求的值来产生显著更好的空间和时间性能
在Java中比较对象时,实际上是在比较引用,而不是在使用==相等运算符时比较值。相反,您应该使用方法。equals来比较值
Integer a = 2423;
Integer b = 5455;
if (a.equals(b)) { ...
在Java中比较对象时,实际上是在比较引用,而不是在使用==相等运算符时比较值。相反,您应该使用方法。equals来比较值
Integer a = 2423;
Integer b = 5455;
if (a.equals(b)) { ...
您可以使用整数对象而不是int基元作为变量类型。这将只适用于最大值为128的“=”运算符,因为java缓存它。比较对象的正确方法是.equals函数 但请使用原始值
int i1 = 1;
int 12 = 2;
List<Integer> values = ArrayList<Integer>();
if (!values.contains(i1)) {
values.add(i);
}
if (!values.contains(i2)) {
values.add(i2);
}
您可以使用整数对象而不是int基元作为变量类型。这将只适用于最大值为128的“=”运算符,因为java缓存它。比较对象的正确方法是.equals函数 但请使用原始值
int i1 = 1;
int 12 = 2;
List<Integer> values = ArrayList<Integer>();
if (!values.contains(i1)) {
values.add(i);
}
if (!values.contains(i2)) {
values.add(i2);
}
可能重复的可能重复的可能重复的谢谢。平等的工作得到了款待。也谢谢你的解释:谢谢你,平等的工作是一种享受。谢谢你的解释: