用于java顺序搜索的辅助方法

时间:2014-02-21 18:47:10

标签: java recursion arraylist

我需要在递归顺序搜索arraylist中使用辅助方法。

这是我的助手方法:

private int seqSearchRecHelper(int sku, int index) {
    if (index < inventory.size()) {
        if (sku == inventory.get(index).getSku()) {
            return index;
        }
        return seqSearchRecHelper(sku, index + 1);
    }
    return -1;
}

我只是不确定如何使用辅助方法编写递归顺序搜索方法。

到目前为止,我所拥有的只是方法名称和参数:

public InventoryItem seqSearchRec(int sku) {        
}

2 个答案:

答案 0 :(得分:1)

public InventoryItem seqSearchRec(int sku) {
    int i = seqSearchRecHelper(sku, 0);
    //returns null if the item is not found.
    if (i == -1) return null;
    return inventory.get(i);
}

首先调用seqSearchRecHelper为0,因为0是第一个索引。然后,helper方法将调用自身,直到找到该项或到达结尾,索引将在调用链中向上传递。

答案 1 :(得分:0)

   public InventoryItem seqSearchRec(int sku) {   

 int index = seqSearchRecHelper(sku,0);// send  the key to be searched(sku)
  //and the start  index(lets begin with index 0)
 if(index == -1){
    // sku not found
 }else{
     // sku found at possition index 
 }
 //   return InventoryItem object
}