[英]How to find the number of times a specific element occurs in an Array list in Java
我寫了一種方法,目的是計算特定口味的薯片在blueJ小吃機中出現的次數
public int countPacks(String flavour){
int n = 0;
int nrFlavour = 0;
while( n < packets.size()) {
if( packets.get(n).equals(flavour)){
nrFlavour++;
n++;
}
else n++;
}
return nrFlavour;
}
我有一個Arraylist'packets',其中包含具有特定風味的PackOfCrisps對象。 但是,當我添加了說三個數據包的“鹽”風味薯片並運行此方法時,輸入“ salt”作為風味劑,它只會返回0,就好像沒有帶有“鹽”風味的PackOfCrisps對象一樣。 抱歉,如果這沒有意義。 我對Java還是很陌生,我已經盡力解釋了我的問題。 :)
列表packets
包含PackOfCrisps
對象,並且該方法采用String
參數。 因此,語句packets.get(n).equals(flavour)
將PackOfCrisps
對象與String
進行比較,因此count變量將永遠不會增加。
您需要將flavour
字符串與對象的特定字段進行比較,例如:
if(packets.get(n).getFlavour().equals(flavour)){
附帶一提,您可以使用簡單的for
循環替換while
循環,並刪除n
的增量。
您的問題有內置的解決方案,您可以使用此方法
您可以像這樣重寫您的countPacks
方法:
public int countPacks(String flavour){
return Collections.frequency(packets, flavour);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.