检查Java中是否已经存在数组条目



我有一个相当简单的问题:如何检查(int(数组,无论当前条目数组[I]是否已经分配。

这是一个动态编程任务,我将子任务的结果存储在一个数组中。因此,阵列被连续填充。

我尝试过:if(a[i] != null) do stuff;,但我得到一个错误,在这种情况下"!="是一个错误的运算符。

检查这一点的最佳(稳健(解决方案是什么?

如果aint数组,则不能询问以下问题:

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...}

会很好用的。

最新更新