1介绍

java中的容器主要是Collection<E>的子类型,即都实现了Iterable<E>接口,即使是Map类型,也有entrySet方法可以获得该Map的所有元素组成的Set。在java中的iterator实现利用内部类的机制,可以十分方便的实现。借助内部类可以直接访问外部类的所有方法和字段,因此iterator()返回的Iterator<E>类型,是实现了公共Iterator<E>接口的类型,这样既可以封装容器的迭代器的具体实现,又能给外部提供统一的访问接口,既安全有便捷。

实现了Iterable<E>的类型,均可以通过iterator()获得该容器上的迭代器Iterator<E>实例

2.主要子接口

ListIterator<E>

3.主要方法

  1. hasNext() : boolean,判断该容器是否还有下一个元素
  2. next() : E,返回容器下一个元素
  3. default remove(): void, 移除当前迭代器指向的元素,即最后一次调用next()返回的元素,默认实现抛出UnSupportedOperationException;

4.default 方法(自jdk1.8)

  1. default forEachRemaining(Consumer<? extends E> action) : void,对每一个容器中元素调用action.accept(element)

5.总结

迭代器模式在java中的使用更加便捷和安全。通过Iterable接口,Collection类型可以用于foreach循环,也使得其他类型可以方便的访问该容器。而Iterator中iterator()方法,也恰恰返回了Iterator<E>,这样容器类就给外部提供了统一的访问接口。

java容器-Iterator的更多相关文章

  1. 理解java容器:iterator与collection,容器的起源

    关于容器 iterator与collection:容器的起源 iterator的简要介绍 iterable<T> iterator<T> 关于remove方法 Collecti ...

  2. 【Java心得总结七】Java容器下——Map

    我将容器类库自己平时编程及看书的感受总结成了三篇博文,前两篇分别是:[Java心得总结五]Java容器上——容器初探和[Java心得总结六]Java容器中——Collection,第一篇从宏观整体的角 ...

  3. 【Java心得总结六】Java容器中——Collection

    在[Java心得总结五]Java容器上——容器初探这篇博文中,我对Java容器类库从一个整体的偏向于宏观的角度初步认识了Java容器类库.而在这篇博文中,我想着重对容器类库中的Collection容器 ...

  4. 【Java心得总结五】Java容器上——容器初探

    在数学中我们有集合的概念,所谓的一个集合,就是将数个对象归类而分成为一个或数个形态各异的大小整体. 一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集.构成集合的事物或对象称作元素或是成 ...

  5. Java 容器(list, set, map)

    java容器类库的简化图: (虚线框表示接口, 实线框表示普通的类, 空心箭头表示特定的类实现了接口, 实心箭头表示某个类可以生成箭头所指的类对象) 继承Collection的主要有Set 和 Lis ...

  6. java集合-Iterator迭代

    我们常常使用 JDK 提供的迭代接口进行 Java 集合的迭代. Iterator iterator = list.iterator(); while(iterator.hasNext()){ Str ...

  7. java容器(java编程思想第四版-读书笔记)

    容器类库图    List(interface) 次序是List最重要的特点:它保证维护元素特定的顺序.List为Collection添加了许多方法,使得能够向List中间插入与移除元素.(这只推荐L ...

  8. Java 容器:Collection 初探之 List

    1 ///: JavaBasic//com.cnblogs.pattywgm.day1//CollectionTest.java 2 3 package com.cnblogs.pattywgm.da ...

  9. java容器---集合总结

    思考为什么要引入容器这个概念? Java有多种方式保存对象(应该是对象的引用),例如使用数组时保存一组对象中的最有效的方式,如果你想保存一组基本类型的数据,也推荐使用这种方式,但大家知道数组是具有固定 ...

随机推荐

  1. Django 框架基本操作(二)

    一.设计表结构 1.班级表结构 表名:grade 字段:班级名称(gname).成立时间(gdate).女生总数(ggirlnum).男生总数(gboynum).是否删除(isDelete) 2.学生 ...

  2. buucitf-[极客大挑战 2020]Roamphp1-Welcome

    打开靶机,发现什么也没有,因为极客大挑战有hint.txt,里面说尝试换一种请求的方式,bp抓包,然后发送了POST请求,出现了下面的界面 这个还是挺简单的,因为是极客大挑战上的第一波题,关键是这个如 ...

  3. js实现跳转的几种方式

    1. window.open("url"); 2.用自定义函数 <script> function openWin(tag,obj) { obj.target=&quo ...

  4. centos 7.5搭建oracle DG

    一.背景 1.IP分配 主库:192.168.12.5 node1 备库:192.168.12.6 node2 2.环境 主库已安装数据库软件,已建库,并有业务数据 备库已安装数据库软件,未建库 二. ...

  5. Docker(三):Docker安装MySQL

    查找MySQL镜像 镜像仓库 https://hub.docker.com/ 下拉镜像 docker pull mysql:5.7 查看镜像 docker images 创建MySQL容器 命令式启动 ...

  6. abp.zero 9.0框架的前端Angular使用说明

    abp.zero 9.0框架的前端Angular使用说明 目录 abp.zero 9.0框架的前端Angular使用说明 摘要 1 部署及启动 1.1 依赖包安装 1.2 使用yarn安装依赖包 1. ...

  7. js下 Day16、正则案例

    一.封装格式化日期 功能思路分析: \1. 第一个参数format表示指定的时间格式 \2. 第二个参数date为指定的时间(可以不传,默认当前时间) \3. 获取第二个参数中指定时间的年月日时分秒 ...

  8. angular8 大地老师学习笔记---第九课

    父组件:news组件 <app-header [title]="title" [msg]="msg" [run]='run' [home]='this'& ...

  9. LightningChart -XY 2D图表特性

    LightningChart -XY 2D图表--2D图表 系列类型:抽样数据(离散数据).点线.任意形式的点线.面积.高低.多边形.股票系列(蜡烛图).条.带.恒定线.强度网格和强度网强度系列能够渲 ...

  10. FLUXION参考渗透测试

    1. 安装Fluxion 第一种种在终端输入git clone https://github.com/FluxionNetwork/fluxion.git(官方)第二种: 在终端输入 https:// ...