Iterator<E>接口

本文介绍了Java集合框架中的Iterator接口,对比了其与枚举的不同,并详细解释了hasNext(), next(), remove() 和 forEachRemaining()等核心方法的功能及用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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”。

 

  

转载于:https://www.cnblogs.com/bigbigbigo/p/8552870.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值