Java Collection集合iterator方法解析

 更新时间:2020年01月14日 11:46:40   作者:LeeHua  
这篇文章主要介绍了Java Collection集合iterator方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了Java Collection集合iterator方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Iterator接口概述

/**
 * java.util.Iterator接口:选代器(对集合进行遍历)
 *   有两个常用的方法
 *          boolean hasNext()
 *             如果仍有元素可以迭代,则返回true。
 *             即判断集合中还有没有下ー个元素,有就返回true,没有就返回 false
 *          E next()
 *             返回送代的下一个元素。
 *             即取出集合中的下一个元素
 *   iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象。
 *       获取实现类的方式比较特殊Collection接口中有一个方法,叫iterator(),这个方法返回的就是送代器的实现类对象
 *       Iterator<E> iterator()返回在该collection集合的元素上进行迭代的送代器。
 *
 * 迭代器的使用步骤(重点):
 *       1.使用集合中的方法 iterator()获取送代器的实现类对象,使用Iterator接口接收(多态)
 *       2.使用Iterator接口中的方法hasNext来判断还有没有下一个元素
 *       3.使用Iterator接口中的方法next来取出集合中的下一个元素
 */

迭代器代码的实现

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Collection;

public class Demo01Iterator {
  public static void main(String[] args) {
    Collection <String> collection = new ArrayList<>();

    collection.add("1号");
    collection.add("2号");
    collection.add("3号");
    collection.add("4号");
    collection.add("5号");

    // 第一步:使用集合中的方法 iterator() 获取送代器的实现类对象
    // 第二步:使用Iterator接口接收(多态)
    Iterator<String> stringIterator = collection.iterator();

    // 第三步:使用Iterator接口中的方法hasNext来判断还有没有下一个元素
    while (stringIterator.hasNext()) {
      // 第四步:使用Iterator接口中的方法next来取出集合中的下一个元素
      System.out.println(
          stringIterator.next()
      );
    }
    
  }
}
输出结果:
1号
2号
3号
4号
5号

迭代器的实现原理

new一个集合出来
collection = new ArrayList<>()


假设集合中添加有元素
collection = [一号元素, 二号元素, 三号元素, 四号元素, 五号元素]


集合中的元素对应的索引
Index = [0, 1, 2, 3, 4]


调用iterator方法
collection.iterator()
作用:获取迭代器的实现类对象井且会把指针(索引)指向集合的-1素引


代码说明:
while (stringIterator.hasNext()) {
  stringIterator.next()
}
通过Iterator接口的hasNext()方法,判断集合是否还有没有下一个元素
如果有下一个元素,那么就调用Iterator接口的next()方法,取出下一个元素,并且会把指针向后移一位。


就这样,从索引的 -1 位置的下一位索引,开始获取元素,直到获取完全。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java TokenProcessor令牌校验工具类

    Java TokenProcessor令牌校验工具类

    这篇文章主要介绍了TokenProcessor令牌校验工具类 ,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • Spring Boot日志介绍和配置

    Spring Boot日志介绍和配置

    在程序中,日志对象通过LoggerFactory获取,日志框架如SLF4J提供统一API,便于管理和维护,日志级别分为FATAL、ERROR、WARN、INFO、DEBUG、TRACE,通过配置可细化日志输出,日志还可持久化存储和格式化,使用lombok可简化日志代码的编写
    2024-11-11
  • 2020年支持java8的Java反编译工具汇总(推荐)

    2020年支持java8的Java反编译工具汇总(推荐)

    这篇文章主要介绍了2020年支持java8的Java反编译工具汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Java代码实现酒店管理系统

    Java代码实现酒店管理系统

    这篇文章主要为大家详细介绍了Java代码实现酒店管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Spring零基础入门IOC

    Spring零基础入门IOC

    IoC就是比方说有一个类,我们想要调用类里面的方法(不是静态方法),就要创建该类的对象,使用对象调用方法来实现。但对于Spring来说,Spring创建对象的过程,不是在代码里面实现的,而是交给Spring来进行配置实现的
    2022-08-08
  • idea使用带provide修饰依赖导致ClassNotFound

    idea使用带provide修饰依赖导致ClassNotFound

    程序打包到Linux上运行时,若Linux上也有这些依赖,为了在Linux上运行时避免依赖冲突,可以使用provide修饰,本文主要介绍了idea使用带provide修饰依赖导致ClassNotFound,下面就来介绍一下解决方法,感兴趣的可以了解一下
    2024-01-01
  • SSM项目使用拦截器实现登录验证功能

    SSM项目使用拦截器实现登录验证功能

    这篇文章主要介绍了在SSM项目中如何使用拦截器,实现登录验证功能。文中的实现步骤讲解详细,感兴趣的小伙伴可以了解一下
    2022-01-01
  • Java中String.split()的最详细源码解读及注意事项

    Java中String.split()的最详细源码解读及注意事项

    以前经常使用String.split()方法,但是从来没有注意,下面这篇文章主要给大家介绍了关于Java中String.split()最详细源码解读及注意事项的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • MyBatis SpringMVC整合实现步骤详解

    MyBatis SpringMVC整合实现步骤详解

    这篇文章主要介绍了MyBatis SpringMVC整合实现步骤详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Spring使用@Retryable实现自动重试机制

    Spring使用@Retryable实现自动重试机制

    在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在 Spring 中使用 @Retryable 实现自动重试机制,需要的朋友可以参考下
    2025-01-01

最新评论