最初,我们被鼓励用递归来解决这个问题,但到目前为止,我只能想到一个迭代的方法。
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;
}
}
发布于 2020-08-19 08:18:10
一种方法是使用元素,然后在使用迭代器递归时删除元素。
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;
}
}
发布于 2020-08-19 08:52:02
尝尝这个。
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
https://stackoverflow.com/questions/63481944
复制