Java 经典实例:自定义迭代器详解编程语言
2023-06-13 09:20:45 时间
编写自己的Iterator,实现Iterator接口,这里多说一句,实现Iterable后,可以用“foreach”循环遍历你的对象。
import java.util.Iterator; import java.util.NoSuchElementException; * 演示Iterator和Iterable接口,并说明怎样编写一个用于对象数组的简单迭代器。 public class AarrayIterator T implements Iterable T , Iterator T { private final static String[] names = {"rose", "petunia", "tulip"}; public static void main(String[] args) { AarrayIterator String arrayIterator = new AarrayIterator (names); // Java 5,6的方式 for (String s : arrayIterator) { System.out.println(s); // Java 8的形式 arrayIterator.forEach(System.out::println); /** * 要遍历的数据 **/ protected T[] data; protected int index = 0; /** * 构造一个AarryIterator对象。 * @param data 被迭代的对象数组 public AarrayIterator(final T[] data) { setData(data); /** * 设置(重置)数组为给定的数组,重置迭代器。 * 参数d代表被迭代的数组对象。 * @param d 被迭代的数组对象 public void setData(final T[] d) { this.data = d; index = 0; /** * 如果不是末尾,返回true,例如,if next()语句将成功执行。 * 否则返回false,执行if next()语句会抛出异常。 * @return public boolean hasNext() { return index data.length; /** * 返回该数据的下一个元素 * @return public T next() { if (hasNext()) { return data[index++]; throw new NoSuchElementException("only " + data.length + " elements"); public void remove() { throw new UnsupportedOperationException("This demo Iterator does not implement the remove method"); /** * Iterator的方法 * @return public Iterator T iterator() { index = 0; return this; }
执行结果:
rose petunia tulip rose petunia tulip
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/15861.html
cjava相关文章
- 【深入Java基础】HashMap的基本用法
- 2021年游戏项目的十大编程语言:C++、Java、C#均上榜「建议收藏」
- Java三大器之拦截器(Interceptor)的实现原理及代码示例「建议收藏」
- Java详解:淘宝秒杀脚本java
- java 图片识别 tess4j_JAVA使用Tess4J进行ocr识别
- Contest1620 – 2020-2021-2学期《Java Web 系统开发》:java基础:字符串
- 编写java判断闰年_用Java程序判断是否是闰年的简单实例[通俗易懂]
- java软件工程师是做什么的_JAVA软件工程师是做什么的?
- java executeupdate_Java自学-JDBC execute与executeUpdate的区别
- Java接口是什么意思_JAVA接口
- java实现递归树形结构_java递归算法经典实例
- JAVA静态内部类_java静态内部类实例化
- 下列那个类有获取PropertyDescriptor实例的方法_java反射怎么理解
- 【Java 虚拟机原理】Java 引用类型 ( 强引用 | 软引用 | 弱引用 | 虚引用 | 静态变量 )
- java操作mongoDB查询的实例详解
- Java中的ConcurrentHashMap详解编程语言
- Java经典实例:把字符串解析为日期时间详解编程语言
- Java经典实例:纪元秒和本地日期时间互换详解编程语言
- Java经典实例:正则表达式,找到匹配的文本详解编程语言
- 如何使用Java连接MySQL数据库(java怎么连接mysql数据库)
- 解决Java程序连接MySQL的准确方案:Java连接MySQL的Jar包(java连接mysql的jar包)
- java将日期中的斜线或中文改成统一日期格式 yyyy-MM-dd HH:mm:ss详解编程语言
- Java实例之实现淡旺季飞机票打折
- 技术的融合突破极限:Java与Redis的技术融合(java与redis)
- Linux下部署Java项目实践(linux部署java项目)
- 机制基于Redis和Java实现的高效过期机制(redisjava过期)
- 操作Redis Java操作实现过期时间调整(redisjava过期)
- Java无法连接Redis服务器(java连不上redis)
- 失效策略Java中使用Redis实现数据过期失效策略(redisjava过期)
- Java Redis实例学习与应用(java redis实例)
- Java更新提升Oracle软件性能(java更新oracle)
- Oracle中实现Java程序设计的极限可能性(oracle中的java)