2021-11-14Iterator迭代器
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迭代器相关推荐
- 史上最详细微信小程序授权登录与后端SprIngBoot交互操作说明,附源代码,有疑惑大家可以直接留言,蟹蟹 2021.11.29完善更新小程序代码,
2021.11.29 更新文章 你好,我是博主宁在春,一起学习吧!!! 写这篇文章的原因,主要是因为最近在写毕业设计,用到了小程序,这中间曲曲折折,一言难尽啊.毕业设计真的让人麻脑阔
- 读论文——Pre-Training with Whole Word Masking for Chinese BERT(2021 11.25)
第一遍 标题以及作者(2021 11.25) 摘要 本文基于BERT,在RoBERTa上进行一系列改进,提出了用于中文的预训练模型MacBERT. 提出了一种新的掩码策略,MLM as correct ...
- 首页推荐流支持快捷修改兴趣标签,问答支持展示gif【2021.11.8】
hello,大家好,这里是「CSDN产品周报」第17期.本次更新主要涉及首页和问答两个产品模块,具体细节请往下看. 一.首页优化 1.「推荐」信息流新增「修改兴趣标签」按钮 从用户需求的角度考虑,对内 ...
- 【报告分享】小红书平台2021 11.11期间行业投放分析报告-千瓜数据(附下载)
摘要:随着平台多元化发展,用户体量增加,小红书逐渐拥抱了更多的年轻用户群体,也给更多的品牌带来了增长机会.据小红书方透露,2021年小红书平台的单日笔记曝光已经超100亿次,且男性用户占比已经达到了3 ...
- 2021.11.8-11.14 AI行业周刊(第71期):AI行业经验
篇章一:行业经验 不同的AI公司,对于AI产品的场景定位不同. 有的公司是面向C端产品.有的公司专门做B端用户. 当然大白所在的公司,也有具体的定位,主要面向智慧金融.智慧机场.智慧城市. 之前,一直 ...
- 第13期微生物组-宏基因组分析(线上/线下同时开课,2021.11)
福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...
- 【不忘初心】Win10_LTSC2021_19044.1381_X64_可更新[纯净精简版][2.52G](2021.11.20)
此版可正常更新补丁,母版来自UUP WIN10_LTSC2021 19044.1288集成补丁到19044.1381为了保证稳定初心的系统全部都是离线精简和优化,非二次封装.系统纯净.流畅.进程少无任 ...
- 微生物组-宏基因组分析(线上/线下同时开课,2021.11)
福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...
- 《星科快报》2021.11.11何为NFT
<星科快报>2021.11.9---何为NFT 艺术经销商.Artnet专栏作家和自称为NFT的传播者Kenny Schachter认为,数字作品可能会在五年内让传统艺术市场黯然失色. 本 ...
- 2021/11/27大数据1+XJava答案
2021/11/27 步骤二 //已经提供Student类的属性,补充完成该类的有参(五个参数)及无参构造方法public Student(){}public Student(String name, ...
最新文章
- LeetCode 75. Sort Colors--Python解法
- 一款插件如何让Github变得不一样?
- 如何判断DropDownList中是否包含某个项
- 无法向会话状态服务器发出会话状态请求
- 【自动驾驶/opencv】32.交通灯颜色提取的难点
- Makefile的重建与include指令
- [zz]ASP.NET MVC2框架验证学习笔记
- 数据有序_CATTI汉译英批改 | 人工智能、大数据有序推进
- python学习之-- 故障记录汇总
- 自由职业者的八大挑战
- 在OneNote中快速插入当前日期和时间
- 人体姿态估计综述 2020最全
- 软件测试中动态测试与静态测试的区别
- 卡塞格林光学系统_卡塞格林红外光学系统装调技术研究
- 杰里之AD140录音编码接口【篇】
- DB2 SQLSTATE:428C9,不能将ROWID列指定为INSERT或UPDATE的目标列。
- biz 域名是什么样的?biz 域名的价值高吗?
- (转)VB程序逆向反汇编常见的函数
- 长沙理工大学计算机科学与技术专业排名,2019长沙理工大学专业排名
- python设置代理后图片内容不一样_Python爬虫---关于使用代理的一些异常
热门文章
- python语音命名规则_python语音变量命名规则
- python向量机使用方法_Python中支持向量机SVM的使用方法详解
- 机器学习线性回归_机器学习-线性回归
- Tex 表格注释实例
- 文本分类入门(二)文本分类的方法
- Codechef SEAARC Sereja and Arcs (分块)
- mysql insert报错_mysql数据库使用insert语句插入中文数据报错
- 2021-03-09 PPT字号设置规则和图片网站(from 旁门左道)
- Dev XtraReport 正在打印弹出框如何隐藏 批量打印 静默打印
- 实现BX的内容加上123 并把和送到寄存器AX