当我试图比较两个int数组时,即使它们完全相同,if(one==two)
中的代码仍然没有执行。这是为什么?
Object[] one = {1,2,3,4,5,6,7,8,9};
Object[] two = {1,2,3,4,5,6,7,8,9};
if (one == two){
System.out.println("equal");
} else {
System.out.println("not equal");
}
这里需要注意几件事:
==
比较引用,而不是值。.。也就是说,您要问的是这两个数组是否是相同的实例,而不是它们是否包含相同的值。==
这一事实意味着您可能不知道对象
上的equals()
方法。这不是解决当前问题所需的方法,但请注意,一般来说,在比较两个对象的值时,应该使用obj1.equals(obj2)
,而不是obj1==obj2
。现在==
确实可以处理像int
这样的原语(例如,plain oldx==3
等等),所以也许这就是您使用它的原因,但我只是想确保您知道equals()
与==
.java.util.Arrays
类上使用静态arrays.equals()
方法。此方法重载于所有基元类型(对每个元素对使用==
)和Object
(其中它将对每个元素对使用equals()
)。以及为什么我在这个中得到..
我想将数组长度与一些int值进行比较。我可以用if(如果)if(如果)else(如果),但如何用switch(切换),因为switch(切换)很快,我想在我的项目中使用它 如果有
我正在尝试编写一个日历。我将我的约会保存在另一个ArrayList中的两个不同的ArrayList中。 字符串(Subject,Place,People)进入另一个ArrayList=arstr中的第一个ArrayList 整数(Date和Time)进入另一个ArrayList=arInt中的第二个ArrayList 当我创建约会时,我希望根据日期对其进行排序。所以如果我想添加一个新的约会,它应该
问题内容: 我不知道为什么所有人都打印错误。 当我运行“ java ByteArray”时,答案是“ false false false false”。 我认为a []等于b [],但是JVM告诉我我错了,为什么?? 问题答案: 如果要比较包含基本类型值(例如字节)的数组的实际内容,请使用此选项。 使用了包含对象数组的比较。
问题内容: 为什么m和t都是假的?比较Java中2个数组的正确方法是什么? 问题答案: 使用Arrays.equals方法。例:
问题内容: 在Java中工作,假设我有两个对象,这要归功于,我知道它们都是数组。进一步说,我想将这两个数组相互比较- 可能使用。有没有一种优雅的方法可以做到这一点,而无需借助详尽的if / else树来弄清楚需要使用哪种口味?我正在寻找比这更令人讨厌的东西: 问题答案: 您可以使用反射。 反射仅用于在运行时找到正确的方法,而不会引起您的回避。实际方法应该运行得很快。 显然,生产版本需要更强大的异常