全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java实现的自定义迭代器功能示例

本文实例讲述了Java实现的自定义迭代器功能。分享给大家供大家参考,具体如下:

编写自己的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

希望本文所述对大家java程序设计有所帮助。


# Java  # 自定义  # 迭代器  # Java中HashMap和TreeMap的区别深入理解  # JAVA HashMap详细介绍和示例  # 浅析Java中Map与HashMap  # Hashtable  # HashSet的区别  # java HashMap通过value反查key的代码示例  # 举例详解Java编程中HashMap的初始化以及遍历的方法  # Java中HashMap和Hashtable及HashSet的区别  # java中Hashtable和HashMap的区别分析  # Java中的迭代和递归详解  # java 迭代器模式实例详解  # Java基础教程之HashMap迭代删除使用方法  # 迭代  # 遍历  # 自己的  # 一句  # 可以用  # 给大家  # 如果不是  # 多说  # 所述  # 抛出  # 程序设计  # 讲述了 


相关文章: 香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何在企业微信快速生成手机电脑官网?  在线教育网站制作平台,山西立德教育官网?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  建站之星在线客服如何快速接入解答?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  如何通过wdcp面板快速创建网站?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  C++如何使用std::optional?(处理可选值)  如何用好域名打造高点击率的自主建站?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Thinkphp 中 distinct 的用法解析  如何撰写建站申请书?关键要点有哪些?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何高效利用亚马逊云主机搭建企业网站?  如何快速搭建个人网站并优化SEO?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何高效完成自助建站业务培训?  建站之星免费模板:自助建站系统与智能响应式一键生成  家具网站制作软件,家具厂怎么跑业务?  建站主机选哪种环境更利于SEO优化?  如何在Windows服务器上快速搭建网站?  如何安全更换建站之星模板并保留数据?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  建站之星云端配置指南:模板选择与SEO优化一键生成  如何快速搭建二级域名独立网站?  如何用西部建站助手快速创建专业网站?  如何选择高效便捷的WAP商城建站系统?  制作电商网页,电商供应链怎么做?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  如何通过.red域名打造高辨识度品牌网站?  如何正确选择百度移动适配建站域名?  创业网站制作流程,创业网站可靠吗?  动图在线制作网站有哪些,滑动动图图集怎么做?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何快速搭建安全的FTP站点?  微信小程序 input输入框控件详解及实例(多种示例)  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  ,制作一个手机app网站要多少钱?  如何制作一个表白网站视频,关于勇敢表白的小标题?  宝塔建站助手安装配置与建站模板使用全流程解析  建站之星后台管理如何实现高效配置?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  香港服务器租用每月最低只需15元?  建站主机核心功能解析:服务器选择与网站搭建流程指南  如何高效搭建专业期货交易平台网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。