2012-07-18 92 views
0

在我的程序中,Die(刺繡的骰子)是具有不同字段的類。其中之一是String,它被稱爲haveIt。因此,如果程序的用戶在haveIt字段中輸入「是」字樣,他應該能夠在myInventory列表中跟蹤他擁有的所有​​的列表。使用字符串作爲過濾器從另一個ArrayList中過濾新的ArrayList

我該怎麼做?我應該在我的Contoller類的字段和構造函數上創建myInventoryArrayList<Die>,還是應該在該類的特殊方法中構建它?

我嘗試了一切,沒有任何工作。但我在這方面真的很新。

這是我最後一次嘗試,在我Controller類是從一個特殊的getMyInventory方法創建一個循環來創建新ArrayList<Die>(即具有「是」的haveIt場):

public ArrayList<Die> getMyInventory(Die anyDie) { 
    for (int counting = 0; counting < 
diesBigList.Count ; counting++); 
     { 
     if 
(((Die)diesBigList[counting]).doIHaveIt.contains("Yes")) 

myInventory.add(diesBigList[counting]); 

      return myInventory; 
     } 
} 

它不編譯。它告訴我,結果應該是一個Array類型,但它被解析爲ArrayList ......(並且我不會解釋它)。

在此先感謝。

回答

0

您錯過了一份退貨聲明。如果這從來都不是真的呢?

if (((Die)diesBigList[counting]).doIHaveIt.contains("Yes")) 

你永遠達不到你的return語句

下面是答案

public ArrayList<Die> getMyInventory(Die anyDie) { 
ArrayList<Die> myInventory = new ArrayList<Die>(); 
    for (int counting = 0; counting < diesBigList.Count; counting++) { 
     if (((Die)diesBigList[counting]).doIHaveIt.contains("Yes")) { 
       myInventory.add(diesBigList[counting]); 
     } 
    } 
      return myInventory; 
} 

也有可能是這個問題:diesBigList.Count我不知道在哪裏,你得到了物體或那是什麼方法看起來像,但我認爲在我的代碼中正確地進行調用。

+0

嗨,Bnjmn。我以爲myInventory.add(diesBigList [計數])正在做這個功能。你的意思是我應該寫這個: – Dieglock 2012-07-18 23:30:14

+0

'if(((Die)dieBigList [counting] .doIave:null)...'然後保留剩下的部分嗎? – Dieglock 2012-07-18 23:38:00

+0

我從StackOverflow的例子中得到了.Count 。我試圖調整它到我的代碼中,但是我沒有創建這個方法...我想我的例子沒有幫助...如果你嘗試使用String來執行新的ArrayList過濾,你會怎麼做它? – Dieglock 2012-07-18 23:41:07