我写了一种方法,目的是计算特定口味的薯片在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)){
附带说明,您可以将
while
循环替换为简单的for
循环,并删除n
的增量。