首页 > 编程语言 >Java集合中迭代器的原理

Java集合中迭代器的原理

时间:2023-01-08 12:11:34浏览次数:41  
标签:Java 迭代 iterator 元素 next add 集合

我们通过一个小案例进行分析:

public class IteratorDemo1 {
    public static void main(String[] args) {
        //创建集合对象
        Collection<String> c = new ArrayList<>();

        //添加元素
        c.add("hello");
        c.add("world");
        c.add("java");
        c.add("javaee");

        //Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
          //此时默认指向0索引
        Iterator<String> it = c.iterator();

        //用while循环改进元素的判断和获取
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }
    }
}

当我们使用c,iterator()创建对象后,it默认索引值指向0。

对于hashNext()方法,它主要是判断当前元素是否能被取出

对于next()方法,它先取出集合当前位置的元素,然后将迭代器往后移动一个索引的位置

通过while循环,利用hashNext()方法判断元素存在进行循环,使用next()方法进行遍历集合并取出集合的每一个元素。

最终将结果打印在控制台上面。

 

标签:Java,迭代,iterator,元素,next,add,集合
From: https://www.cnblogs.com/new-one/p/17034369.html

相关文章

  • java多线程知识点总结
    一、线程的三种创建方法1-1继承Thread继承thread方法然后重写run方法,在用start开启线程。代码实现:Threadt=newThread(){@Overridepu......
  • java弹幕视频网站源码
    简介Java基于ssm的弹幕视频系统,用户注册后可以上传视频进行投稿,也可以浏览视频发送弹幕,在个人中心管理视频、管理弹幕、管理评论等。管理员可以管理视频弹幕评论,查看统计......
  • java食堂库存管理系统源码
    简介Java基于sprinboot开发的食堂库存管理系统,用于统计食堂库存的,包含采购、入库、出库、折损等功能。演示视频https://www.bilibili.com/video/BV1Jf4y1C7vq/?share_s......
  • java基于ssm空气质量检测系统源码网站空气质量监测源码
    简介Java基于ssm的空气质量检测系统,检测设备检测一定范围内的企业空气指数,如果有污染则地图显示红色标记。演示视频https://www.bilibili.com/video/BV1GK4y1W7JB/?shar......
  • Snmp网络协议及Java开发相关
    主要包:snmp4j  完整demo:​​http://avery-leo.iteye.com/blog/213980​​  课件​​https://wenku.baidu.com/view/3862136127d3240c8447ef19.html​​ ......
  • 为什么 java 容器推荐使用 ExitOnOutOfMemoryError 而非 HeapDumpOnOutOfMemoryError
    前言好久没写文章了,今天之所以突然心血来潮,是因为昨天出现了这样一个情况:我们公司的某个手机APP后端的用户(customer)微服务出现内存泄露,导致OutOfMemoryError,但......
  • java环境搭建
    Day2-jdk下载(8u201免费)下载地址https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html安装地址    安装完后设置系统变量如下四......
  • 使用 JavaScript 创建一个兔年春节倒数计时器
    我们可以通过多种方式构建JavaScript倒数计时,我在本教程中展示的这个​​兔年春节倒数计时器​​是由HTMLCSS和JavaScript创建的。它的工作方式非常简单,需要两种类......
  • [C++/Java/Py/C#/Ruby/Swift/Go/Scala/Kotlin/Rust/PHP/TS/Elixir/Dart/Racket/Erlang
    目录题解地址代码cppjavapython3C#rubyswiftgolangscalakotlinrustphptypescriptelixirdartracketerlang题解地址https://leetcode.cn/problems/counting-words-with-a-g......
  • Java面试题Day05
    1.说一下HashMap的实现原理?HashMap是基于哈希表的Map接口的非同步实现,此实现提供所有可选的映射操作,并允许使用null值和null键.2.HashMap是如何解决Hash冲突?核心就......