2011-12-17 104 views
0

我工作的对象数组我能够得到,直到元素没有exists.For例如元素的如何查找对象数组是否包含元素?

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

我能够获得通过指数的元素,但是当我到了超越指数长度。例如,在这里我们有5个元素最后将被元素[4]访问,但是如何检查元素[5],元素[6]是否存在

+1

'elements.length'返回该数组的大小。 – Voo 2011-12-17 17:47:54

+0

我将在for循环中使用它,所以数组的大小会有所不同。我只需要查找索引中的元素是否包含值。 – Karthik 2011-12-17 17:50:05

+0

@Karthik:提供一个更好的代码示例。 'elements.length'也可以循环使用:) – tuergeist 2011-12-17 18:07:46

回答

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); 
    } 
+1

你的例子比需要更复杂。例如,在将'i'设置为'10'之前用'0'初始化并声明一个变量'elementsLength',这个变量只能用于一次...... – tuergeist 2011-12-17 18:13:09

+0

@tuergeist是的,我知道。因为它是具有附加功能的准备好员工的示例..;) – 2011-12-18 12:05:11

4

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

2

在Java中,数组是对象。该对象包含名为lengthpublic final字段。该字段包含数组的长度(=元素数量)。

因此,要回答你的问题从字面上:

如何检查[5],元素[6]中存在的元素或不

通过比较要检查与数组索引长度。

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

要在一个循环中利用这一点,可以编写一个简单的for循环,它总是检查是否索引STIL比数组长度小。

for (int index = 0; index < array.length; ++index) 
{ 

} 
+0

你的'doesIndexExist'更复杂,只需要使用'indexToCheck tuergeist 2011-12-17 18:09:11

+0

@tuergeist:我知道。我想让你知道我**从来不会**这样做。但是我只是写了它,因为OP可能会更好地理解它。我不知道它是否真的帮了他很多,但值得一试。 – 2011-12-17 18:13:37

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

4

屁股VOO注意,你需要检查数组的长度,如:

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

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

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

犹未,你可以换的数组作为List,并利用其contains方法:

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

+1 asList方法是迄今为止最容易理解和最简单的方法。 – helpermethod 2011-12-19 14:56:53

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; 
} 
+0

'elements.length()'是错误的,因为'length'是'elements'的成员,而不是方法 – tuergeist 2011-12-17 18:11:25

+0

感谢您的纠正。是的,长度是元素的成员而不是方法。 – mmodi 2011-12-18 05:59:49

相关问题