如何查找对象数组是否包含元素?

时间:2011-12-17 17:46:08

标签: java arrays object indexing

我正在处理Object Array我能够获取元素,直到元素存在。例如

Object[] elements={"Apple","Orange","Grape","Mango","Banana"};

我能够通过索引获取元素,但是当我超出索引长度时。例如,这里我们有5个元素,最后将被元素[4]访问,但是如何检查元素[5],元素[6] ]是否存在

6 个答案:

答案 0 :(得分:4)

使用elements.length查找数组中的元素数。

答案 1 :(得分:4)

Ass Voo指出,您需要检查数组长度,例如:

for(int i=0; i<elements.length; i++){
  // Check elements[i] here.
}

或者,您可以使用Java 5中引入的新for循环语法:

for(Object e : elements){
  // Check e here.
}

更好的是,您可以将数据包装为List,并使用其contains方法:

Arrays.asList(elements).contains("Strawberry"); // Will return false.

答案 2 :(得分:3)

在按索引获取元素之前,您始终必须确保索引有效。要么你知道索引是存在的,因为你创建了数组并且知道它的长度,或者你不知道因为你没有创建数组,然后你只需要检查索引是否对数组有效:

if (index < array.length) {
    // the index is valid for this array. I can use array[index]
}

大多数情况下,数组用于遍历其所有元素,您只需从0(包括)迭代到数组的长度(不包括):

for (int i = 0; i < array.length; i++) {
    // do something with array[i]
}

原始类型数组中总有一些东西。 int[]数组中填充了int个值。如果没有初始化,则填充为0.默认情况下,boolean[]数组填充为false。

默认情况下,对象数组填充null

答案 3 :(得分:2)

在Java中,数组是一个Object。该对象包含一个名为public final的{​​{1}}字段。该字段包含数组的长度(=元素数)。

所以,从字面上回答你的问题:

  

如何检查元素[5],元素[6]是否存在

通过将要检查的索引与数组长度进行比较。

length

要在循环中使用它,可以编写一个简单的for循环,它总是检查索引stil是否小于数组长度。

public boolean doesIndexExist(Object[] array, int indexToCheck)
{
    return indexToCheck < array.length;
}

答案 4 :(得分:1)

例如,

    Object[] elements = {"Apple","Orange","Grape","Mango","Banana"};

    Object obj = null;
    int elementsLength = elements.length;

    int i = 10;

    if (i < elementsLength) {
        obj = elements[i];
    } else {
        System.out.println("Oops!.. Out of index!");
    }

    if (obj != null) {
        System.out.println(obj);
    }

答案 5 :(得分:0)

您可以使用数组的length属性来标识没有可用的元素。即使你可以写这样的方法。

Object[] elements={"Apple","Orange","Grape","Mango","Banana"};
public boolean isElementExist(int index) {
    boolean result = false;
    if(index >= 0 && index < elements.length) {
       result = true;        
    }
    return result;
}