我编写了一个方法,旨在计算某种特定口味的薯片在 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/