java—有没有一种方法可以将这个接受整数对象集合并添加这些元素的迭代函数转换为递归函数?

but5z9lq  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(263)

最初,我们被鼓励用递归来解决这个问题,但到目前为止,我只能想到一个交互式的。

import java.util.*;

public class Problem1 {

    static Integer add(Collection integers) {
        Integer sum = 0;

        Iterator iterator = integers.iterator();        

        while (iterator.hasNext()) {

            sum = sum + (Integer) iterator.next();
        }
        return sum;

    }
}
nr9pn0ug

nr9pn0ug1#

一种方法是在使用迭代器递归时使用然后移除元素。

public class Problem1 {    
    static Integer add(Collection integers) {
        Integer sum = 0;
        Iterator it = integers.iterator();

        if (!it.hasNext()) {
            return 0;
        }
        Integer number = (Integer)it.next();
        it.remove();
        sum += number + add(integers);

        return sum;
    }
}
gdrx4gfi

gdrx4gfi2#

试试这个。

static Integer add(Iterator it) {
    if (!it.hasNext())
        return 0;
    else
        return (Integer)it.next() + add(it);
}

static Integer add(Collection integers) {
    return add(integers.iterator());
}

Collection integers = List.of(1, 2, 3, 4);
System.out.println(add(integers));

输出

10

相关问题