2012-12-07 97 views
1

我想从同一个类中的另一个方法调用方法来检查用户输入的内容是否在arrayList中。如果它在arrayList中,我想为其数量加1。如果它不在arrayList中,我将它添加到arrayList。下面是我有:如何用Java中的另一种方法调用方法(同一类)

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);  
} 

我知道我需要一个if语句在addItem的方法,但我不知道怎么写。

有没有办法检查是否返回了y或返回了null

回答

0

只需调用searchForItem方法传递名称作为参数即可。

public void addItem(Item f) { 
if(searchForItem(f.getName())==null) { 
    s.add(f); // add's the item only if searchForItem returns null 
} 
} 
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; 
} 
0

使用HashMap!它将有O(1)的访问时间,这样你就不必迭代数组列表。使用containsKey方法检查元素是否在地图中,并使用get方法获取它。

相关问题