Java检查数组[]项是否存在

Java检查数组[]项是否存在,java,arrays,Java,Arrays,我正在将一些数据下载到字符串数组中。比如说ImageLinks。 如何检查数组中是否存在项 我正在努力 if(ImageLinks[5] != null){} 但是它给了我一个数组索引边界外异常。(因为数组中确实没有5个链接)在执行查找之前,请确保数组的长度为该长度 if(ImageLinks.length > 5 && ImageLinks[5] != null){} 要防止出现ArrayIndexOutOfBoundsException,可以使用以下选项: if(I

我正在将一些数据下载到字符串数组中。比如说
ImageLinks
。 如何检查数组中是否存在项

我正在努力

if(ImageLinks[5] != null){}

但是它给了我一个
数组索引边界外异常
。(因为数组中确实没有5个链接)

在执行查找之前,请确保数组的长度为该长度

if(ImageLinks.length > 5 && ImageLinks[5] != null){}

要防止出现
ArrayIndexOutOfBoundsException
,可以使用以下选项:

if(ImageLinks.length > 5 && ImageLinks[5] != null)
{
    // do something
}
由于
if
中的语句是从左到右检查的,因此如果数组的大小不正确,则不会进行空检查


对于任何场景都很容易概括。

是的,只有不到6个元素
ImageLinks[5]引用第6个元素,因为java中的数组索引从0开始编写静态函数

public static boolean indexInBound(String[] data, int index){
    return data != null && index >= 0 && index < data.length;
}

它失败的原因是数组的元素少于6个

首先检查数组的元素数是否正确,然后检查数组中是否存在元素

 if (ImageLinks.length > 5 && ImageLinks[5] != null) {
     // do something
 }

if(ImageLinks.length>5)
?这不会考虑
null
的情况。@Baz这是解决ArrayIndexOutOfBoundsException的问题,如果我们想处理null条件,我们可以随时为NullPointerException添加一个catch块,只要说OP想同时实现这两个功能。这也是正确的,代码中没有任何语句抛出NPE。我对这个答案有一些问题。。。1) 异常行为应使用异常;使用异常来处理预期行为,例如在
true
false
检查中,是非常糟糕的。2)
is…Exists
命名错误。您的答案不正确。请参阅以下Java文档页面上的“短路”逻辑:如果第一个布尔语句为false,并且后面有一个&&运算符,没有理由继续求值,因为无论第二个操作数是否为真,整个语句都必须为假。答案:设置索引的数组怎么样?类似于
a[0]=20;a[5]=30。如果我选中
If(a.length>4&&a[4]!=null)
它会抛出一个null异常,那么@sdlins是否能够设置索引5,数组的长度必须至少为6才能使用If语句。此时,它将检查索引是否存在以及它是否为空。不会有任何例外。是的!对不起,你说得对!我试着编写代码,效果很好。我可能是在混合不同的语言和概念。塔克斯!
 if (ImageLinks.length > 5 && ImageLinks[5] != null) {
     // do something
 }
if (ImageLinks != null && Stream.of(ImageLinks).anyMatch(imageLink-> imageLink != null)) {
//An item in array exist
}