java - 如何在Java中查找特定元素在数组列表中出现的次数

标签 java arraylist while-loop bluej

我编写了一个方法,旨在计算某种特定口味的薯片在 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“数据包”,其中包含具有特定风格的 PackOfCrisps 对象。然而,当我添加三包“盐” flavor 薯片并运行此方法,输入“盐”作为 flavor 时,它只返回 0,就好像不存在具有“盐” flavor 的 PackOfCrisps 对象一样。 抱歉,如果这没有意义。我对 Java 很陌生,我已尽力解释我的问题。 :)

最佳答案

列表packets包含PackOfCrisps对象,并且该方法采用String参数。因此,语句 packets.get(n).equals(flavour) 是将 PackOfCrisps 对象与 String 进行比较,因此 count 变量永远不会增加。

您需要将 flavour 字符串与对象的特定字段进行比较,例如:

if(packets.get(n).getFlavour().equals(flavour)){

顺便说一句,您可以用简单的 for 循环替换 while 循环,并删除 n 的增量。

关于java - 如何在Java中查找特定元素在数组列表中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26741726/

相关文章:

java - 如何反转在​​不同类中创建的 ImageIcon 数组的内容?

javascript - 为什么这会导致无限循环?

R,while(TRUE)如何工作?

javascript - 我如何使用mysql while循环来循环Js

java - 使用 PDFBox 添加页码

java - Collections.sort 按列表中对象的日期属性排序

java - t :datatable apply css on row

java - 模仿Java的ArrayList.remove(o)的函数

java - addCookie 方法不会将 cookie 添加到 httpServletResponse

java - 打印出数组列表中的每个项目