Iterator<E>接口
https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html
public interface Iterator<E>
一、简介
位于包 java.util中,Iterator<E>接口是Java集合框架的成员,E表示这个迭代器返回的元素的类型。
一个集合的迭代器。迭代器在Java的集合框架中取代枚举。迭代器与枚举有两种不同之处:
- 迭代器允许调用者在迭代过程中使用明确定义的语义从底层集合中移除元素;
- 改进了方法名称
二、方法
1、boolean hasNext()
若迭代中还有元素,返回“true”。换句话说,当next()方法还能返回一个元素而不是抛出异常时,hasNext()返回“true”。
2、E next()
返回迭代中的下一个元素。
如果迭代中没有更多的元素了,抛出“NoSuchElementException”。
3、default void remove()
从底层集合中移除此迭代器返回的上一个(最后一个)元素。
每次调用next()方法时,只能调用该方法一次。
在迭代进行时,如果用了调用这个方法以外的其它方式对底层集合进行了修改,则迭代器的行为是不明确的。
如果迭代器不支持移除操作,抛出“UnsupportedOperationException”异常,且不执行其它操作。
如果next()方法还未被调用,或者remove()方法在上一次next()调用后已经被调用过了,抛出“IllegalStateException”。
4、default void forEachRemaining(Consumer<? super E> action)
action,要为每个元素执行的操作。
interface Consumer<T>,是一个功能性接口,它表示接受单个输入参数且不返回结果的操作。它的功能性方法为void accept(T t)——用参数t实现操作。
对每个剩余元素执行给定操作,直到处理完所有元素或操作抛出异常。
如果指定了迭代顺序,则按迭代顺序执行操作。该操作引发的异常会中继给调用者。
一般的实现为:
while (hasNext())
action.accept(next());
如果指定的操作为空,抛出“NullPointerException”。
Iterator<E>接口的更多相关文章
- Collections+Iterator 接口 | Map+HashMap+HashTable+TreeMap |
Collections+Iterator 接口 1. Collections 是一个操作 Set.List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序.查询 ...
- Iterator接口。集合输出
在集合中支持以下几种方式. iterator ListIterator foreach输出 emumeration输出. 集合输出的标准操作: 集合输出的时候必须形成以下的思路:只要碰到了集合输出的操 ...
- iterator接口
Iterator用来做遍历,所有实现Collection接口的容器都有一个Iterator的方法以返回一个Iterator接口的对象
- java集合 之 Collection和Iterator接口
Collection是List,Queue和Set接口的父接口,该接口里定义的方法即可用于操作Set集合,也可以用于List和Queue集合.Collection接口里定义了如下操作元素的方法. bo ...
- < java.util >-- Iterator接口
每一个集合都有自己的数据结构,都有特定的取出自己内部元素的方式.为了便于操作所有的容器,取出元素.将容器内部的取出方式按照一个统一的规则向外提供,这个规则就是Iterator接口. 也就说,只要通过该 ...
- Java API ——Collection集合类 & Iterator接口
对象数组举例: 学生类: package itcast01; /** * Created by gao on 15-12-9. */ public class Student { private St ...
- 源码阅读—Iterator接口和LIstIterator接口
在继续看ArrayList源码之前,先了解Iterator接口和ListIterator接口,下篇文章详细讲解ArrayList是如何实现它们的. 我们知道,接口只是一种规范,当继承接口并实现其中的方 ...
- Iterator接口(迭代器)
目录 前言 原理 方法 异常 Iterator接口(迭代器) 前言 一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象, ...
- 为链表数据结构实现iterator接口
iterator作用 为所有的数据结构提供统一的访问方式. 接口对象 接口对象一共有3个方法,next()方法.return()方法.throw()方法. next() 必填 用于for..of迭代. ...
- Iterator 接口
首先要从foreach说起,我们都知道对象,数组和对象可以被foreach语法遍历,数字和字符串却不行.其实除了数组和对象之外PHP内部还提供了一个 Iterator 接口,实现了Iterator接口 ...
随机推荐
- Centos-Redhat下远程桌面的方法 & Redhat改Centos源
折腾了好几天才搞定,Redhat下远程桌面的方法,首先保证本身已经装了桌面,并且可以ssh访问 由于系统中自带python2环境,装了anaconda以及它带的python3环境,这个必须存在(前提) ...
- 基于Redis的分布式锁安全性分析-转
基于Redis的分布式锁到底安全吗(上)? 2017-02-11 网上有关Redis分布式锁的文章可谓多如牛毛了,不信的话你可以拿关键词“Redis 分布式锁”随便到哪个搜索引擎上去搜索一下就知道了 ...
- truncate at 255 characters with xlsx files(OLEDB方式读取Excel丢失数据、字符串截断的原因和解决方法)
The TypeGuessRows setting is supported by ACE. Note the version numbers in the key may change depend ...
- mysql 添加用户 - 设置远程登录/本地登陆的权限
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户: mysql> GRANT A ...
- java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:list
package DisplayAuthors; import java.sql.*; public class DisplayAuthors { private static final Str ...
- on namespace ceilometer.$cmd failed: Authentication failed. 问题处理方案
on namespace ceilometer.$cmd failed: Authentication failed. UserNotFound: Could not find user ceilom ...
- jdk1.8-ArrayList源码分析
一:idea可以自动生成UML类图,ctrl+alt+u ArrayList类图 我没们看下类的继承关系 ) { ) { ) { )) )) newCapacity = minCapacity) ne ...
- react 添加代理 proxy
react package.json中proxy的配置如下 "proxy": { "/api/rjwl": { "target": &quo ...
- 网络实验 03-交换机划分VLAN配置
交换机划分VLAN配置 一.实验目标 理解虚拟 LAN(VLAN)基本原理 掌握一般交换机按端口划分 VLAN的配置方法 掌握Tag VLAN配置方法 二.实验背景 某一公司内财务部.销售部的PC通过 ...
- 3 Java Web 入门 1 Servlet 入门
1 Tomcat 1.1 安装 JDK Oracle 官网 1.2 安装 Tomcat