我有一个问题:
编写一个类,该类从一个生成数字的生成器中获取一系列整数。包括两个函数:1- Sum-Average。
我知道如果生成器需要通过在每一步返回来逐个生成数字,那么yield语句是python中的选择。
你们如何在java中做到这一点?我不明白我怎么能意识到这个
感谢。
答案 0 :(得分:4)
如果要实现类似行为的“序列”,可以选择实现java.util.Iterator接口。
class RandomSequence implements Iterator<Integer>, Iterable<Integer> {
private int count;
private Random random;
public RandomSequence(int count) {
this.count = count;
this.random = new Random();
}
Integer next() {
count--;
return random.nextInt();
}
boolean hasNext() {
return count > 0;
}
Iterator<Integer> iterator() {
return this;
}
public static void main(String[] args) {
int n = 0;
for(int n: new RandomSequence(10))
sum += n;
}
}