1.Iterator迭代器介绍

集合的遍历有两种:迭代器或者增强for循环。为什么不用for循环获得每个元素呢?因为在list里面有索引,但是在set里面没有索引。
有索引的时候可以用for循环,但是集合中有的没有索引,所以用Iterator迭代器进行遍历

2.迭代器的代码实现

Demo01Iterator.java

package Iterator;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;/**   java.util.Iterator接口:迭代器(对集合进行遍历)*   Iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现对象,获取实现类的方式比较特殊*   Collection接口中又一个方法,叫iterator(),这个方法返回的就是迭代器的实现类对象*       Iterator<E> iterator() 返回在此collection的元素上进行迭代的迭代器**   迭代器的使用步骤(重点):*       1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)*       2.使用Iterator接口中的方法hasNext判断还有没有下一个元素*       3.使用Iterator接口中的方法next去除集合中的下一个元素* */
public class Demo01Iterator {public static void main(String[] args) {//1.创建集合对象Collection<String> coll = new ArrayList<>();//2、往集合里面添加元素coll.add("张三");coll.add("李四");coll.add("王五");coll.add("赵六");coll.add("田七");/** 1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)* 注意:*       Iterator<E>接口也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型* *///多态Iterator<String> it = coll.iterator();/**  发现使用迭代器取出集合中元素的代码,是一个重复的过程*  所以我们可以使用循环优化*  不知道集合中有多少个元素,使用while循环*  循环结束的条件,hasNext方法返回false** */while (it.hasNext()) {System.out.println(it.next());}//张三//李四//王五//赵六//田七//        boolean b = it.hasNext();
//        System.out.println(b);//true
//        String next = it.next();
//        System.out.println(next);//张三
//
//        boolean b1 = it.hasNext();
//        System.out.println(b1);//true
//        String next1 = it.next();
//        System.out.println(next1);//李四
//
//        boolean b2 = it.hasNext();
//        System.out.println(b2);//true
//        String next2 = it.next();
//        System.out.println(next2);//王五
//
//        boolean b3 = it.hasNext();
//        System.out.println(b3);//true
//        String next3 = it.next();
//        System.out.println(next3);//赵六
//
//        boolean b4 = it.hasNext();
//        System.out.println(b4);//true
//        String next4 = it.next();
//        System.out.println(next4);//田七
//
//        boolean b5 = it.hasNext();
//        System.out.println(b5);//false
//        String next5 = it.next();
//        //System.out.println(next5);//NoSuchElementException}
}

3.迭代器的原理

4.增强For

Demo02ForEach.java

package Iterator;import java.util.ArrayList;
import java.util.Collection;public class Demo02ForEach {public static void main(String[] args) {//1.遍历数组int[] array = new int[]{1, 2, 3, 4, 5};for (int a : array) {System.out.println(a);}//1//2//3//4//5//2.遍历集合Collection<String> coll = new ArrayList<>();coll.add("张三");coll.add("李四");coll.add("王五");coll.add("赵六");coll.add("田七");for (String c : coll) {System.out.println(c);}//张三//李四//王五//赵六//田七}
}

2021-11-14Iterator迭代器相关推荐

  1. 史上最详细微信小程序授权登录与后端SprIngBoot交互操作说明,附源代码,有疑惑大家可以直接留言,蟹蟹 2021.11.29完善更新小程序代码,

    2021.11.29 更新文章 你好,我是博主宁在春,一起学习吧!!! 写这篇文章的原因,主要是因为最近在写毕业设计,用到了小程序,这中间曲曲折折,一言难尽啊.毕业设计真的让人麻脑阔

  2. 读论文——Pre-Training with Whole Word Masking for Chinese BERT(2021 11.25)

    第一遍 标题以及作者(2021 11.25) 摘要 本文基于BERT,在RoBERTa上进行一系列改进,提出了用于中文的预训练模型MacBERT. 提出了一种新的掩码策略,MLM as correct ...

  3. 首页推荐流支持快捷修改兴趣标签,问答支持展示gif【2021.11.8】

    hello,大家好,这里是「CSDN产品周报」第17期.本次更新主要涉及首页和问答两个产品模块,具体细节请往下看. 一.首页优化 1.「推荐」信息流新增「修改兴趣标签」按钮 从用户需求的角度考虑,对内 ...

  4. 【报告分享】小红书平台2021 11.11期间行业投放分析报告-千瓜数据(附下载)

    摘要:随着平台多元化发展,用户体量增加,小红书逐渐拥抱了更多的年轻用户群体,也给更多的品牌带来了增长机会.据小红书方透露,2021年小红书平台的单日笔记曝光已经超100亿次,且男性用户占比已经达到了3 ...

  5. 2021.11.8-11.14 AI行业周刊(第71期):AI行业经验

    篇章一:行业经验 不同的AI公司,对于AI产品的场景定位不同. 有的公司是面向C端产品.有的公司专门做B端用户. 当然大白所在的公司,也有具体的定位,主要面向智慧金融.智慧机场.智慧城市. 之前,一直 ...

  6. 第13期微生物组-宏基因组分析(线上/线下同时开课,2021.11)

    福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...

  7. 【不忘初心】Win10_LTSC2021_19044.1381_X64_可更新[纯净精简版][2.52G](2021.11.20)

    此版可正常更新补丁,母版来自UUP WIN10_LTSC2021 19044.1288集成补丁到19044.1381为了保证稳定初心的系统全部都是离线精简和优化,非二次封装.系统纯净.流畅.进程少无任 ...

  8. 微生物组-宏基因组分析(线上/线下同时开课,2021.11)

    福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...

  9. 《星科快报》2021.11.11何为NFT

    <星科快报>2021.11.9---何为NFT 艺术经销商.Artnet专栏作家和自称为NFT的传播者Kenny Schachter认为,数字作品可能会在五年内让传统艺术市场黯然失色. 本 ...

  10. 2021/11/27大数据1+XJava答案

    2021/11/27 步骤二 //已经提供Student类的属性,补充完成该类的有参(五个参数)及无参构造方法public Student(){}public Student(String name, ...

最新文章

  1. LeetCode 75. Sort Colors--Python解法
  2. 一款插件如何让Github变得不一样?
  3. 如何判断DropDownList中是否包含某个项
  4. 无法向会话状态服务器发出会话状态请求
  5. 【自动驾驶/opencv】32.交通灯颜色提取的难点
  6. Makefile的重建与include指令
  7. [zz]ASP.NET MVC2框架验证学习笔记
  8. 数据有序_CATTI汉译英批改 | 人工智能、大数据有序推进
  9. python学习之-- 故障记录汇总
  10. 自由职业者的八大挑战
  11. 在OneNote中快速插入当前日期和时间
  12. 人体姿态估计综述 2020最全
  13. 软件测试中动态测试与静态测试的区别
  14. 卡塞格林光学系统_卡塞格林红外光学系统装调技术研究
  15. 杰里之AD140录音编码接口【篇】
  16. DB2 SQLSTATE:428C9,不能将ROWID列指定为INSERT或UPDATE的目标列。
  17. biz 域名是什么样的?biz 域名的价值高吗?
  18. (转)VB程序逆向反汇编常见的函数
  19. 长沙理工大学计算机科学与技术专业排名,2019长沙理工大学专业排名
  20. python设置代理后图片内容不一样_Python爬虫---关于使用代理的一些异常

热门文章

  1. python语音命名规则_python语音变量命名规则
  2. python向量机使用方法_Python中支持向量机SVM的使用方法详解
  3. 机器学习线性回归_机器学习-线性回归
  4. Tex 表格注释实例
  5. 文本分类入门(二)文本分类的方法
  6. Codechef SEAARC Sereja and Arcs (分块)
  7. mysql insert报错_mysql数据库使用insert语句插入中文数据报错
  8. 2021-03-09 PPT字号设置规则和图片网站(from 旁门左道)
  9. Dev XtraReport 正在打印弹出框如何隐藏 批量打印 静默打印
  10. 实现BX的内容加上123 并把和送到寄存器AX