簡體   English   中英

如何查找Java中的數組列表中特定元素出現的次數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM