我需要在递归顺序搜索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) {
}
答案 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
}