Comparing integer Arrays in Java. Why does not == work?(比较 Java 中的整数数组.为什么 == 不起作用?)
问题描述
我正在学习 Java,只是想出了一个关于该语言的微妙事实:如果我声明两个具有相同元素的整数数组并使用 ==
比较它们,结果是 false代码>.为什么会这样?比较不应该评估为
true
吗?
I'm learning Java and just came up with this subtle fact about the language: if I declare two integer Arrays with the same elements and compare them using ==
the result is false
. Why does this happen? Should not the comparison evaluate to true
?
public class Why {
public static void main(String[] args) {
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};
System.out.println(a == b);
}
}
提前致谢!
推荐答案
使用Arrays.equals(arr1, arr2) 方法.
Use Arrays.equals(arr1, arr2) method.
==
运算符 只是检查两个引用是否指向同一个对象.
The ==
operator just checks if two references point to the same object.
测试:
int[] a = {1, 2, 3};
int[] b = a;
System.out.println(a == b); // returns true as b and a refer to the same array
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};
System.out.println(Arrays.equals(a, b)); //returns true as a and b are meaningfully equal
这篇关于比较 Java 中的整数数组.为什么 == 不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:比较 Java 中的整数数组.为什么 == 不起作用?
基础教程推荐
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01