Day07_36_Iterator迭代器
Iterator
Iterator
Iterator iterator(); 获取集合所依赖的迭代对象
通过迭代器iterator()中的方法完成集合的迭代(遍历),这种方式是所有集合通用的遍历方法。
所有集合的迭代器 都实现了 java.util.Iterator 接口。
Iterator接口迭代器中有三个遍历方法:
boolean hasNext() : 如果集合中仍有元素,还可以继续迭代则返回true,否则false。
next() : 返回迭代的下一个元素。
remove(): 从迭代器指向的 collection 中,移除迭代器返回的最后一个元素。
调用iterator.next() 方法之前,必须利用iterator.hasNext()判断是否有元素
同一个迭代器只能遍历一次,如果写了两个遍历,则第二个遍历无法输出
迭代器具体应用实例
``` package com.shige.Collection; import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList; public class IteratorText {
public static void main(String[] args) { //创建集合对象
Collection collection = new LinkedList(); // 父类引用指向子类对象 //创建Customer对象
Customer customer=new Customer("Eva",22); //给集合添加元素
collection.add(new Integer(100));
collection.add("诗歌");
collection.add(customer); //创建迭代器对象1
Iterator iterator= (Iterator) collection.iterator(); //父类引用指向子类对象 iterator()是Iterator接口下的一个方法。 // 开始调用方法完成迭代 //while循环写法
while(iterator.hasNext()){ // 判断集合中是否还有元素
Object obj=iterator.next(); //将迭代器向下移动一位,并取出所指向的元素
System.out.println(obj); //输出元素
} //获取集合长度
System.out.println(collection.size()); System.out.println("================================================================================="); // for循环写法
for(Iterator iterator1=collection.iterator();iterator1.hasNext();){ // 同一个迭代器只能遍历一次,需要遍历几次就创建几个迭代器。
Object obj1=iterator1.next();
System.out.println(obj1);
} }
}
Day07_36_Iterator迭代器的更多相关文章
- 匹夫细说C#:庖丁解牛迭代器,那些藏在幕后的秘密
0x00 前言 在匹夫的上一篇文章<匹夫细说C#:不是“栈类型”的值类型,从生命周期聊存储位置>的最后,匹夫以总结和后记的方式涉及到一部分迭代器的知识.但是觉得还是不够过瘾,很多需要说清楚 ...
- 轻量级“集合”迭代器-Generator
Generator是PHP 5.5加入的新语言特性.但是,它似乎并没有被很多PHP开发者广泛采用.因此,在我们了解PHP 7对Generator的改进之前,我们先通过一个简单却显而易见的例子来了解下G ...
- C#设计模式-迭代器模式
一. 迭代器(Iterator)模式 迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作也放在集合对象中,但这样的 ...
- 设计模式(十):从电影院中认识"迭代器模式"(Iterator Pattern)
上篇博客我们从醋溜土豆丝与清炒苦瓜中认识了“模板方法模式”,那么在今天这篇博客中我们要从电影院中来认识"迭代器模式"(Iterator Pattern).“迭代器模式”顾名思义就是 ...
- Python(四)装饰器、迭代器&生成器、re正则表达式、字符串格式化
本章内容: 装饰器 迭代器 & 生成器 re 正则表达式 字符串格式化 装饰器 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等.装饰器是解 ...
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
- Java迭代器
迭代器在其实就是指针,读取集合或者数组中的一个值,读完以后又指向下一条数据. iterator() 迭代器只读,不能改效率要比for循环高 迭代器的一些方法: HasNext() 如果仍有元素可以迭代 ...
- Python 生成器与迭代器 yield 案例分析
前几天刚开始看 Python ,后因为项目突然到来,导致Python的学习搁置了几天.然后今天看回Python 发现 Yield 这个忽然想不起是干嘛用的了(所以,好记性不如烂笔头.).然后只能 花点 ...
- 设计模式02迭代器(java)
先贴代码,有空来写内容. 1.定义集合 import java.util.List; import java.util.ArrayList; //coollection是我自己定义的一个集合,因为要写 ...
随机推荐
- Docker SDK for Python
一.概述 Docker引擎API的Python库.它允许您执行docker命令所做的任何操作,但可以在Python应用程序中运行容器.管理容器.管理群集等. 官方文档: https://docker- ...
- 后端程序员之路 13、使用KNN进行数字识别
尝试一些用KNN来做数字识别,测试数据来自:MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgesh ...
- C#实现JWT无状态验证的实战应用
前言 本文主要介绍JWT的实战运用. 准备工作 首先我们创建一个Asp.Net的,包含MVC和WebApi的Web项目. 然后使用Nuget搜索JWT,安装JWT类库,如下图. 设计思路 这里我们简单 ...
- 基于Hi3559AV100的视频采集(VDEC-VPSS-VO)整体框图设计
下面给出基于Hi3559AV100的视频采集整体设计,具体设计将在后续给出: 图形采集端整体设计 Hi3559AV100软件程序按结构划分可分为4层,第一层是硬件驱动层,第二层是操作系统层,第三层是媒 ...
- .net 开源模板引擎jntemplate 实战演习:基础篇之入门
一.简介 模板引擎是Web开发中非常重要的一环,它负责将页面上的动态内容呈现出最终的结果展现给前端用户,在asp.net mvc中,我们最熟悉的就是Razor了,作为官方的视图引擎(视图引擎不等同于模 ...
- PAT-1146(Topological Order)拓扑排序+判断一个序列是否满足拓扑序列
Topological Order PAT-1146 #include<iostream> #include<cstring> #include<string> # ...
- navicat 给mysql 添加存储过程(函数)
BEGIN DECLARE i INT default 0; DECLARE num int default 0; DECLARE count1 int default 0; DECLARE coun ...
- es6 模块和commonjs规范模块的区别
相关代码地址:https://github.com/blank-x/blog-code/tree/main/1-module 引入变量 es6 导入变量只是一个符号链接,是个常量,类似于const 声 ...
- Redis不是一直号称单线程效率也很高吗,为什么又采用多线程了?
Redis是目前广为人知的一个内存数据库,在各个场景中都有着非常丰富的应用,前段时间Redis推出了6.0的版本,在新版本中采用了多线程模型. 因为我们公司使用的内存数据库是自研的,按理说我对Redi ...
- 图像匹配 | NCC 归一化互相关损失 | 代码 + 讲解
文章转载自:微信公众号「机器学习炼丹术」 作者:炼丹兄(已授权) 作者联系方式:微信cyx645016617(欢迎交流共同进步) 本次的内容主要讲解NCCNormalized cross-correl ...