Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将函数中的数组与空值进行比较_Java_Arrays_Function_Null - Fatal编程技术网

Java 将函数中的数组与空值进行比较

Java 将函数中的数组与空值进行比较,java,arrays,function,null,Java,Arrays,Function,Null,我目前正在学习函数并完成给定任务: 编写一个函数eqarr,它接受两个int数组作为参数,如果它们相等,则返回true;否则返回false;您的函数在任何情况下都应返回一个值(即使数组为null) 我在检查数组是否为空时遇到问题。我让数组检查数组之间是否相等,但是对于null则是另一个问题。每当我尝试检查a[i]是否等于nulla[i]==null,我都会得到这个错误错误:二进制运算符“==”的操作数类型错误 我们不能使用现有的函数 任何帮助都将不胜感激 干杯 public class Week

我目前正在学习函数并完成给定任务:

编写一个函数eqarr,它接受两个int数组作为参数,如果它们相等,则返回true;否则返回false;您的函数在任何情况下都应返回一个值(即使数组为null)

我在检查数组是否为空时遇到问题。我让数组检查数组之间是否相等,但是对于null则是另一个问题。每当我尝试检查a[i]是否等于null
a[i]==null
,我都会得到这个错误
错误:二进制运算符“==”的操作数类型错误

我们不能使用现有的函数

任何帮助都将不胜感激

干杯

public class Week8Q5 {

  public static boolean eqarr(int[] a, int[] b) {

    for (int i = 0; i < a.length; i++) {

      if (a[i] != b[i])
        return false;

    }
    return true;
  }

  public static void main(String[] args) {

    int[] a = { 5, 6, 7, 8 };
    int[] b = { 5, 6, 7, 8 };

    System.out.println(eqarr(a, b));

  }
}
public class Week8Q5{
公共静态布尔eqarr(int[]a,int[]b){
for(int i=0;i
使用
a[i]
您正在访问数组的一个元素。由于该数组被定义为
int[]
(即的数组),因此它永远不会是
null

但是如果
a
本身为
null
,则当前实现将失败,因此您应该检查:

public static boolean eqarr(int[] a, int[] b) {
    if (a == null || b == null) {
        // return appropriate value
    }
}
在哪里“合适”取决于你。通常,如果其中一个数组为
null
,而另一个数组不是,那么人们会期望该方法返回
false
,而
true
这两个数组都是
null


请注意,您的代码还有另一个问题。提示:尝试比较两个大小不同的数组。

使用
a[i]
您正在访问数组的一个元素。由于该数组被定义为
int[]
(即的数组),因此它永远不会是
null

但是如果
a
本身为
null
,则当前实现将失败,因此您应该检查:

public static boolean eqarr(int[] a, int[] b) {
    if (a == null || b == null) {
        // return appropriate value
    }
}
在哪里“合适”取决于你。通常,如果其中一个数组为
null
,而另一个数组不是,那么人们会期望该方法返回
false
,而
true
这两个数组都是
null


请注意,您的代码还有另一个问题。提示:尝试比较两个大小不同的数组。

您可以使用条件
arr==null
检查数组
arr
是否为
null

可以按顺序执行以下检查以解决此练习:

  • 如果其中一个数组为
    null
    而另一个不为null,则返回
    false

  • 如果两个数组均为
    null
    ,则返回
    true

  • 如果数组的长度不同,则返回
    false

  • 如果任何元素不同,则返回
    false

  • 返回
    true
    如果您已到达此点(未从任何早期检查返回)


您可以使用条件
arr==null
检查数组
arr
是否为
null

可以按顺序执行以下检查以解决此练习:

  • 如果其中一个数组为
    null
    而另一个不为null,则返回
    false

  • 如果两个数组均为
    null
    ,则返回
    true

  • 如果数组的长度不同,则返回
    false

  • 如果任何元素不同,则返回
    false

  • 返回
    true
    如果您已到达此点(未从任何早期检查返回)


问题明确指出,如果数组为空,而不是它们包含的值,则应返回一个值。基元类型int无论如何不能为null

尝试以下方法:

public static boolean eqarr(int[] a, int[] b) {

        if (a == null && b == null) {
            return true;
        }

        if(!(a == null || b == null)) {

            for (int i = 0; i < a.length; i++) {

                if (a[i] != b[i])
                    return false;
            }
            return true;
        }
        return false;
    }
公共静态布尔eqarr(int[]a,int[]b){
如果(a==null&&b==null){
返回true;
}
如果(!(a==null | | b==null)){
for(int i=0;i
问题明确指出,如果数组为空,而不是它们包含的值,则应返回一个值。基元类型int无论如何不能为null

尝试以下方法:

public static boolean eqarr(int[] a, int[] b) {

        if (a == null && b == null) {
            return true;
        }

        if(!(a == null || b == null)) {

            for (int i = 0; i < a.length; i++) {

                if (a[i] != b[i])
                    return false;
            }
            return true;
        }
        return false;
    }
公共静态布尔eqarr(int[]a,int[]b){
如果(a==null&&b==null){
返回true;
}
如果(!(a==null | | b==null)){
for(int i=0;i
在不放弃太多的情况下,
a[i]
表示数组的
i
第个元素,
a
表示数组本身


您只能比较兼容数据类型的值(例如,
!=
=
)。错误消息源于试图比较不兼容数据类型的值。

在不透露太多信息的情况下,
a[i]
表示数组的
i
第个元素,
a
表示数组本身


您只能比较兼容数据类型的值(例如,
!=
=
)。错误消息源于试图比较不兼容数据类型的值。

如果(a==null&&b==null)返回true,则在循环
之前执行这些检查;如果(a==null | | b==null)返回false;如果(a.length!=b.length)返回false之前执行这些检查;如果(a==null | | b==null)返回false;如果(a.length!=b.length)返回false