java range(10)_Java迭代器实现Python中的range代码实例

如果要想迭代一个类的对象,那么该类必须实现 Iterable 接口,然后通过 iterator 方法返回一个 Iterator 实例。

Range 类实现了Python中的range的所有用法,如:range(10),range(5, 10),range(10, 0, -1),range(0, 10, 2)

如果再在 Range 类中定义静态的工厂方法,然后再静态导入工厂方法,就可以更方便地使用了。

使用实例:

for (int x : new Range(10, 0, -1)) {

System.out.println(x);

}

/* 输出:

10

9

8

7

6

5

4

3

2

1

*/

代码:

class Range implements Iterable {

private final int start;

private final int end;

private final int step;

public Range(int end) {

this(0, end, 1);

}

public Range(int start, int end) {

this(start, end, 1);

}

public Range(int start, int end, int step) {

this.start = start;

this.end = end;

this.step = step;

}

@Override

public Iterator iterator() {

return new Itr();

}

private class Itr implements Iterator {

int current = start;

@Override

public boolean hasNext() {

return step > 0 ? current < end : current > end;

}

@Override

public Integer next() {

int t = current;

current += step;

return t;

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值