Java Collection集合iterator方法解析
作者:LeeHua 发布时间:2022-11-17 06:43:29
标签: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 位置的下一位索引,开始获取元素,直到获取完全。
来源:https://www.cnblogs.com/liyihua/p/12183013.html
0
投稿
猜你喜欢
- 一、项目简述功能: 前后用户的登录注册,婚纱照片分类,查看,摄影师预 订,后台订单管理,图片管理等等。二、项目运行环境配置: Jdk1.8
- Spring 配置文件报错:元素 "context:component-scan" 的前缀 "context&
- 1、本篇内容本文让大家掌握 springmvc 中异步处理请求,特别牛逼的一个功能,大家一定要掌握。2、看段代码,分析问题@Response
- 一、什么是JSONJSON(JavaScript Object Notation)是一种基于JavaScript语法子集的开放标准数据交换格
- Java调用天气Webservice的小应用废话不多说,直接贴代码: CityReq.javapackage com.weathe
- Springboot获取上下文ApplicationContext在项目中遇到了一个场景,就是通过获得上下文然后获取特定的bean。在此遇到
- 实现文档在线预览的方式除了上篇文章《文档在线预览(一)通过将txt、word、pdf转成图片实现在线预览功能》说的将文档转成图片的实现方式外
- 一个是新浪微博,腾讯微博的分享按钮,一个是他们的绑定情况(其实就是是否授权)。点击微博分享中新浪或腾讯按钮,就进行相应的授权(若没授权),显
- springboot集成mybatis关键代码如下:1,添加pom引用 <dependency> <group
- Spring Boot 集成MyBatis在集成MyBatis前,我们先配置一个druid数据源。Spring Boot 集成druiddr
- 传统的多分支方式(圈复杂度为6):public String order(String type) { if ("1&
- SpringBoot 2.1.4 错误处理机制springboot的自动配置中帮我们配置了相关的错误处理组件,例如访问一个不存在的页面,就会
- 1 pom.xml文件注:热部署功能spring-boot-1.3开始有的<!--添加依赖--><dependency&g
- 这篇文章主要介绍了java加载property文件配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 二叉树的深度题目:输入一颗二叉树的根节点,求该树的的深度。输入一颗二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点
- 动态表单的含义是不要手动定义,直接在配置文件中进行定义。1.手动进行定义<form-beans > <form-bean
- 关于《JavaCV的摄像头实战》系列《JavaCV的摄像头实战》顾名思义,是使用JavaCV框架对摄像头进行各种处理的实战集合,这是欣宸作为
- malloc的全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的
- springboot就是简化Spring应用中的初始化配置,快速创建项目而生的。创建springboot项目代开idea,点击File—&g
- 一、实验目的1. 掌握输入输出流的总体结构;2. 掌握流的概念;3. 掌握FileInputStream类、FileOutputStream