我正在尝试从同一个类中的另一个方法调用一个方法来检查用户输入的内容是否在arrayList中。如果它在arrayList中,我想在其数量上加1。如果它不在arrayList中,我会将它添加到arrayList中。这就是我所拥有的:
public Item searchForItem(String n){
for(int i = 0; i < s.size(); i++){
Item y = s.get(i);
if(y.getName().equals(name)){
return y;
}
}
return null;
}
public void addItem(Item f) {
s.add(f);
}
我知道我需要在addItem
方法中使用if语句,但我不确定如何编写它。
有没有办法检查是否已返回y
或是否已返回null
?
答案 0 :(得分:0)
只需调用searchForItem方法,将name作为参数传递。
public void addItem(Item f) {
if(searchForItem(f.getName())==null) {
s.add(f); // add's the item only if searchForItem returns null
}
}
答案 1 :(得分:0)
将foreach语法用于更简单的代码,并尝试以下方法:
public Item searchForItem(String name){
for(Item y : s) {
if(y.getName().equals(name)){
return y;
}
}
s.add(new Item(name));
return null;
}
答案 2 :(得分:0)
使用HashMap!它将具有O(1)访问时间,因此您不必迭代数组列表。使用containsKey方法检查元素是否在map中,以及get方法来获取它。