Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中的另一个方法中调用方法(同一类)_Java_Arrays_Methods - Fatal编程技术网

如何在Java中的另一个方法中调用方法(同一类)

如何在Java中的另一个方法中调用方法(同一类),java,arrays,methods,Java,Arrays,Methods,我试图从同一类中的另一个方法调用一个方法,以检查用户输入的内容是否在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

我试图从同一类中的另一个方法调用一个方法,以检查用户输入的内容是否在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);    
}
public Item searchForItem(字符串n){
对于(inti=0;i
我知道我需要在
addItem
方法中使用if语句,但我不确定如何编写它


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

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

public void addItem(Item f) {  
 if(searchForItem(f.getName())==null) {
  s.add(f);    // add's the item only if searchForItem returns null
}
}

对于更简单的代码,请使用foreach语法,并尝试以下操作:

public Item searchForItem(String name){
  for(Item y : s) {   
    if(y.getName().equals(name)){  
      return y;    
    } 
  }
  s.add(new Item(name));
  return null;
}

使用HashMap!它将有O(1)个访问时间,因此您不必迭代数组列表。使用containsKey方法检查元素是否在映射中,使用get方法获取元素