繁体   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