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 Collection集合中的iterator方法的更多相关文章

  1. Java容器---Collection接口中的共有方法

    1.Collection 接口 (1)Collection的超级接口是Iterable (2)Collection常用的子对象有:Map.List.Set.Queue. 右图中实现黑框的ArrayLi ...

  2. 遍历Collection集合中的6种方法:

    下面的代码演示了遍历Collection集合的6种方法,注意Collection集合的遍历远不止于增强for循环,和迭代器两种. 代码如下: package com.qls.traverse; imp ...

  3. java.util.Map按照key值合并的value的Collection 集合中。

    用java实现把多个map的内容合并的一个resultMap中 代码大致如下 /**  * @author Shalf  */ public class MapUtil { /** * 把partMa ...

  4. ------------------java collection 集合学习 ----小白学习笔记,,有错,请指出谢谢

    <!doctype html>java对象集合学习记录 figure:first-child { margin-top: -20px; } #write ol, #write ul { p ...

  5. Day07_39_集合中的remove()方法 与 迭代器中的remove()方法

    集合中的remove()方法 与 迭代器中的remove()方法 深入remove()方法 iterator 中的remove()方法 collection 中的remove(Object)方法 注意 ...

  6. Day07_38_集合中的remove()方法

    集合中的remove()方法 remove() 移除集合中的一个指定对象 代码实例 package com.shige.Collection; import java.util.ArrayList; ...

  7. Day07_37_深度剖析集合中的contains()方法

    深度剖析集合中的 contains()方法 contains()方法查找集合中是否包含某个元素 contains() 底层使用的是 equals()方法 当contains()方法拿到一个对象的时候, ...

  8. Java进阶(二十四)Java List集合add与set方法原理简介

    Java List集合add与set方法原理简介 add方法 add方法用于向集合列表中添加对象. 语法1 用于在列表的尾部插入指定元素.如果List集合对象由于调用add方法而发生更改,则返回 tr ...

  9. Java 8 接口中的默认方法与静态方法

    Java 8 接口中的默认方法与静态方法 1. 接口中的默认方法 允许接口中包含具有具体实现的方法,该方法称"默认方法",默认方法使用用 default 关键字修饰. public ...

随机推荐

  1. Python--day48--今日内容

  2. Python--day30--软件开发架构

    软件开发架构: C/S架构: B/S架构: B/S架构和C/S架构的关系:

  3. js cookie跨域

    特别说明: 默认情况下,当前域下的cookie只能被当前域下的页面访问. 通过JavaScript设置cookie的doamin属性为一个恰当值即可实现跨域效果. 1.只有根域名相同的不同源的cook ...

  4. SpringBoot整合Redis乱码原因及解决方案

    问题描述:springboot使用spring data redis存储数据时乱码 redis key/value 出现\xAC\xED\x00\x05t\x00\x05 问题分析: 查看RedisT ...

  5. easyui—element-ui框架套用(表格宽度自适应)

    外层使用easyui框架中window组件,便于使用最大化功能:内部表格使用element-ui在的el-table,el-table列宽须设置为最小宽度才能在最大化窗口时列表中列宽自适应window ...

  6. 几种常见排序算法的基本介绍,性能分析,和c语言实现

    本文介绍6种常见的排序算法,以及他们的原理,性能分析和c语言实现: 为了能够条理清楚,本文所有的算法和解释全部按照升序排序进行 首先准备一个元素无序的数组arr[],数组的长度为length,一个交换 ...

  7. 【t081】序列长度

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 有一个整数序列,我们不知道她的长度是多少(即序列中整数的个数),但我们知道在某些区间中至少有多少个整数 ...

  8. UVA live 6667 三维严格LIS

    UVA live 6667 三维严格LIS 传送门:https://vjudge.net/problem/UVALive-6667 题意: 每个球都有三个属性值x,y,z,要求最长的严格lis的长度和 ...

  9. codeforces 1167B Lost Numbers

    传送门:https://codeforces.com/contest/1167/problem/B 题意: 交互题:现在你有6个数4, 8, 15, 16, 23, 42组成的某种组合,你可以询问系统 ...

  10. slim中返回结果加密的

    //返回结果不加密 $this->get("/open]",function (Request $request, Response $response, $args) {  ...