2014-06-05 71 views
0

解決了原始問題。任何人有任何想法如何檢索我想要的對象以及它的索引位置?保存要在主內使用的索引位置。搜索對象數組和索引位置

//========================================================================================== 
       //SEARCH FOR USER 
public User find(String searchName)  
{ 
    int j; 
    for(j=0; j<nElems; j++)   
    if(a[j].getLast().equals(searchName))  
     break;     
    if(j==nElems)    
    return null;    
    else 
    return a[j];    
} // end find 
//=========================================================================================== 

    public static void main(String[] args){ 
    int maxSize = 100;    
    ClassDataArray arr;   
    arr = new ClassDataArray(maxSize);  

    arr.insert("Evans", "Patty", 24);   
    arr.insert("Smith", "Tom", 59); 
    arr.insert("Smith", "Lorraine", 37); 

    arr.find(""); 
} 
+2

'nElems'爲零總是這就是爲什麼'j == nElems'爲真並返回'null' – Braj

+0

[這個問題似乎是離題,因爲它缺乏足夠的信息來診斷問題。更詳細地描述你的問題,或者在問題本身中包含一個簡單的例子。](http://stackoverflow.com/help/closed-questions)具體來說,我們需要看你用來填充數組的代碼。 – durron597

回答

1

你的問題比nElems設置爲0,不max

變化:

nElems = 0; 

到:

nElems = max; 
+0

你意識到OP的數組中的每個元素都是空的嗎?據推測,因爲OP正在使用「動態」陣列。這是我可以看到'nElems'與'max'分開跟蹤的唯一解釋。 –

+0

@ElliottFrisch他沒有向我們展示數組填充到的位置。老實說,缺乏這種方法使得這個問題無法回答。但我不是那個低估了你的答案的人......但他沒有說他得到了一個'NullPointerException',他說它沒有返回任何東西,這就是爲什麼你的答案不可能是他的問題。 – durron597

+0

@ElliottFrisch如果在填充數組的方法中適當地檢查了'null',那麼很可能'null'檢查是不必要的。 – durron597

0

您設定nElems 0 nElems = 0; but`但後來並沒有改變它。所以j永遠不會小於nElems。