Java迭代器实现Python中的range代码实例
更新时间:2020年03月13日 09:38:42 作者:yuanyb
这篇文章主要介绍了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<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; } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Springboot pom项目间接依赖包版本与预期不符原因解决分析
这篇文章主要介绍了Springboot pom项目间接依赖包版本与预期不符原因解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-08-08Spring Cloud Alibaba 之 Nacos教程详解
Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合性解决方案。这篇文章主要介绍了Spring Cloud Alibaba 之 Nacos的相关知识,需要的朋友可以参考下2020-11-11SpringBoot之bootstrap和application的区别解读
这篇文章主要介绍了SpringBoot之bootstrap和application的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03
最新评论