java - java中的数组是否相等方法
问题描述
我是新手,我需要编写一个方法来检查 2 个数组的值和顺序是否相等,如果它们打印为真,否则为假,这是我写的,结果始终为真,如果我尝试打印由于某种原因,函数在数组中接收它们都是 0。
public static boolean areArraysEqual(int[] firstArr, int[] secArr) {
firstArr = new int[N];
secArr = new int[N];
System.out.println(firstArr.length);
if(firstArr.length != secArr.length){
return false;
}
if(firstArr == null || secArr == null){
return false;
}
for(int i = 0; i < firstArr.length; i++) {
if(firstArr[i] != secArr[i]) {
return false;
}
}
return true;
}
解决方案
当您尝试重新分配参数 firstArr 和 secArr 时,原始数组内容会丢失。无需重新分配 firstArr 和 secArr,因为在 java 中,数组对象是按值传递的,它们可以按原样用于其内容。下面的代码片段已经足够好了:
public static boolean areArraysEqual(int[] firstArr, int[] secArr) {
if(firstArr == null || secArr == null || firstArr.length != secArr.length){
return false;
}
for(int i = 0; i < firstArr.length; i++) {
if(firstArr[i] != secArr[i]) {
return false;
}
}
return true;
}
推荐阅读
- apache-spark - 了解 Spark UI 的事件时间线
- php - Google Drive API 代码身份验证返回 500 错误
- bash - Curl:如何从文件中传递特定键的值
- c# - DLL 版本不匹配:找到的程序集的清单定义与程序集引用不匹配
- python - pyspark用正则表达式读取csv文件
- jboss - 如何使用 jBPM 7.7 配置我的 MySQL 5.7?
- apache-spark - 如何确定 PySpark 数据帧分区的“首选位置”?
- angular - 如何将 composeAsync 添加到 Angular 5 验证器
- angular - Angular 4中的Rest API调用得到CORS错误
- javascript - 用于验证没有时间的日期的 Moment js 格式