Java迭代器实现Python中的range代码实例
时间:2021-07-20 08:54:45|栏目:JAVA代码|点击: 次
如果要想迭代一个类的对象,那么该类必须实现 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<Integer> {
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<Integer> iterator() {
return new Itr();
}
private class Itr implements Iterator<Integer> {
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;
}
}
}
上一篇:Spring实战之Bean的作用域request用法分析
栏 目:JAVA代码
下一篇:SpringBoot深入理解之内置web容器及配置的总结
本文标题:Java迭代器实现Python中的range代码实例
本文地址:http://www.codeinn.net/misctech/159575.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




