Python中的Yield需要在java中实现



我有以下问题:

编写一个类,从一个一个生成数字的生成器中获取一系列整数。包括两个函数:1-求和2-平均。

我知道yield语句是python中的选择,如果生成器需要在每一步返回一个数字。

你们用java怎么做呢?我不知道怎么才能实现这个

谢谢。

如果你想实现类似"sequence"的行为,你可以选择实现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;
     }
}

最新更新