Java迭代器实现Python中的range代码实例

网友投稿 244 2022-12-12


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);

}

puhttp://blic Range(int start, int end, int step) {

this.start = start;

this.end = end;

this.step = steqsxVfrVxxp;

}

@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;

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Intellij IDEA 旗舰版创建 Spring MVC 项目踩过的坑
下一篇:基于Java实现多线程下载并允许断点续传
相关文章

 发表评论

暂时没有评论,来抢沙发吧~