如何用java递归调用方法?

时间:2018-01-25 09:19:36

标签: java recursion

有java bean,包含元素列表和折扣。我必须使用递归在这些元素中应用一些计算逻辑,直到折扣值为零。

当前实施

for(CustomClass custom : customList) {
   Pair<CustomClass, Integer> returnVal = myMethod(custom, discount);
}

private Pair<CustomClass, Integer> myMethod(CustomClass custom, Integer discount) {
    pair.getKey().add(custom.setAmount(custom.getAmount - discount));
    pair.getValue().add(discount - custom.getAmount);
    return pair;
}

我必须做类似上面的事情,并且必须在customList中的多个元素中重复使用折扣,直到它为零。我想让它递归,以便我在CustomClass中获得折扣价值并减少折扣。 returnVal已更新折扣,但未在下一次迭代中使用。

有人能给我很好的解决方法吗?

1 个答案:

答案 0 :(得分:4)

要进行递归调用,您需要在

中调用相同的方法
private Pair<CustomClass, Integer> myMethod(CustomClass custom, Integer discount) {

    int dis = discount - custom.getAmount;
    pair.getKey().add(custom.setAmount(custom.getAmount - discount))
    pair.getValue().add(dis);

    if (dis <= 0)
    {
       return pair;
    }

    return myMethod (custom, dis);

}