如何检查Java中是否存在数组中的元素

如何检查Java中是否存在数组中的元素,java,arrays,initialization,Java,Arrays,Initialization,如果我有一个结构如下的int数组: private int[][] map = new int[400][400]; 我试着找回 map[100][200] 如果该元素没有初始化,我会得到编译器/运行时错误还是返回null?是否有任何功能来检查给定的元素/索引是否存在/是否已设置?否 在本例中,数组元素的大小仅足以容纳ints。没有地方存储有关元素是否“存在”的信息。它已分配,因此它存在。在Java中,新分配的int数组将被初始化为所有元素零。我不会返回null,因为int是一种基本类型。它

如果我有一个结构如下的
int
数组:

private int[][] map = new int[400][400];
我试着找回

map[100][200]
如果该元素没有初始化,我会得到编译器/运行时错误还是返回null?是否有任何功能来检查给定的元素/索引是否存在/是否已设置?


在本例中,数组元素的大小仅足以容纳
int
s。没有地方存储有关元素是否“存在”的信息。它已分配,因此它存在。在Java中,新分配的
int
数组将被初始化为所有元素零。

我不会返回
null
,因为
int
是一种基本类型。它将返回默认的
int
值,即
0


除了保留一个单独的布尔数组外,无法知道是否设置了任何元素。

由于数组声明是基元类型,因此不会出现任何编译器或运行时错误-将返回默认值0


如果您的数组是一个对象数组,那么该数组将为任何未指定的元素保留
null

在Java中,只有引用变量被初始化为null。原语保证返回。对于int,这个值是0。

您可以在源代码(二进制文件上的findbugs)上使用,它们会告诉您类似的事情

不幸的是,它们似乎没有发现这个特殊的问题(这很有意义,因为数组保证每个成员都设置为0、null或false)


使用这些工具可以捕获在给定值之前正在使用的实例和类成员(不是数组)(类似的问题)。

有点死板,但我无意中发现了它,所以我要把我的智慧放在这里(或者随便什么:p)。您可以使用Arrays.Fill在使用无效值(如-1)创建数组时填充数组。然后你可以很容易地做一个if xi如果它是一个自定义类/枚举对象的数组,如果没有设置该项/索引,它会返回null吗?这个问题的标题可以编辑为Clear请更改标题。tym的损耗。。。。。