Java 检查数组中的空元素时出错

Java 检查数组中的空元素时出错,java,arrays,Java,Arrays,为什么我不能检查数组中的位置是否为空? 我得到了一个错误的信息: 参数类型int,null的运算符==未定义 在标记线上 私有静态int findNr(int[]trans) { int-emptyPlace=0; 对于(int i=0;i如果(trans[i]=null)您必须执行以下操作 if( trans[i] == null) 而不是 if( trans[i] = null) ^-----------Mistake 无论如何,您是用哪种语言编写代码的?您无

为什么我不能检查数组中的位置是否为空? 我得到了一个错误的信息:

参数类型int,null的运算符==未定义 在标记线上

私有静态int findNr(int[]trans)
{
int-emptyPlace=0;
对于(int i=0;i如果(trans[i]=null)您必须执行以下操作

if( trans[i] == null) 
而不是

if( trans[i] = null)
             ^-----------Mistake

无论如何,您是用哪种语言编写代码的?

您无法比较
null
int
的基元数据类型是基元数据类型。

您尝试将null分配给位置i处的数组元素

要检查元素是否为null,必须执行以下操作:

if(trans[i] == null)
{
    ...
}

但是这个表达式没有任何意义,因为int永远不能为null(除非它是可为null的int(int?),所以条件将始终为false

原语不能用null进行检查。因此对于特定的原语类型,使用它们的默认值进行检查

i、 对于
int
而言,默认值为
0
,对于
double
默认值为
0.0

因此,检查如下:

 if(intr[i]==0){
      //some logic
 }
if(trans[i]=null)

在上一行中,您使用赋值运算符
=
代替比较运算符
=
。如果条件要求计算后的最终值为
布尔值类型,则会出现错误。
另外,您的
trans[i]
是一个基本
int
值,不能与
null
进行比较(在java中,只有对象可以是
null

赋值运算符
=
仅适用于布尔变量,如下所示:

boolean flag = false;

if(flag=true) {
// this condition will be true
}

首先,您错发了
=
比较。应该是:

if (trans[i] == null)
第二,上述方法不起作用。基本值永远不能为
null
,当您声明任何
int
变量时,默认值为0

这就是为什么:

int[] v = new int[3];

for (int i = 0; i < v.length; i++)
    System.out.println(v[i]);
您应该使用
Integer
objects数组或查看逻辑。

1-您忘记了'='-->
if(trans[i]==null)


2-无法比较基元值(int)使用null

你能解释一下整数数组中的空位是什么意思吗?回滚对标记的修改,因为这也肯定不是C。
C
java
C
标记?@Steve我有一个数组,但它不是满的,我想检查数组中的哪些位置是空的,没有任何值。好吗用另一种方法来做吗?我想检查一个空的位置。你有两种方法。a)你知道数组中会有什么值。然后你可以使用例如INT_MAX来表示空值并测试它b)你必须创建第二个数组(bool)并存储在那里标志,指示索引处的第一个数组是否为空
int[] v = new int[3];

for (int i = 0; i < v.length; i++)
    System.out.println(v[i]);
0
0
0