我有一个相当简单的问题:如何检查(int(数组,无论当前条目数组[I]是否已经分配。
这是一个动态编程任务,我将子任务的结果存储在一个数组中。因此,阵列被连续填充。
我尝试过:if(a[i] != null) do stuff;
,但我得到一个错误,在这种情况下"!="是一个错误的运算符。
检查这一点的最佳(稳健(解决方案是什么?
如果a
是int
数组,则不能询问以下问题:
if (a[i] != null)
因为int
的值不能是null
。在空的int
数组中,未初始化的位置将使用0
作为值。也许这适用于您的用例?
if (a[i] != 0)
如果这还不能解决问题,那么可以考虑在程序开始时使用不同的值(例如:-1
(显式初始化数组,并在该条件下对其进行测试。
(a[i]!=null(是int类型的错误。这是因为int是一个基元类型,不能为null。正如在另一个答案和一些注释中所解释的,您可以用一个设置值填充数组,例如-1或Integer.MIN_value,它将标记一个未使用的元素。
如果您需要一个可以为null并作为对象传递的值,也许Integer数组就可以了
它的初始化几乎相同:
Integer[] a = new Integer[N]; // N is a constant indicating the length of the array
这将创建一个可以容纳Integer对象的数组,所有对象都初始化为null。您可以使用将整数放入数组中
a[i] = new Integer(x);
这将在您的if语句中正常工作:
if (a[i] != null) {...do something...}
会很好用的。