2011-12-17 97 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

相關問題