java iterator类_java Iterator类

/** Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.

* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

**/

packagejava.util;importjava.util.function.Consumer;/*** An iterator over a collection. {@codeIterator} takes the place of

* {@linkEnumeration} in the Java Collections Framework. Iterators

* differ from enumerations in two ways:

*

*

*

Iterators allow the caller to remove elements from the

* underlying collection during the iteration with well-defined

* semantics.

*

Method names have been improved.

*

*

*

This interface is a member of the

*

* Java Collections Framework.

*

*@param the type of elements returned by this iterator

*

*@authorJosh Bloch

*@seeCollection

*@seeListIterator

*@seeIterable

*@since1.2*/

public interface Iterator{/*** Returns {@codetrue} if the iteration has more elements.

* (In other words, returns {@codetrue} if {@link#next} would

* return an element rather than throwing an exception.)

*

*@return{@codetrue} if the iteration has more elements*/

booleanhasNext();/*** Returns the next element in the iteration.

*

*@returnthe next element in the iteration

*@throwsNoSuchElementException if the iteration has no more elements*/E next();/*** Removes from the underlying collection the last element returned

* by this iterator (optional operation). This method can be called

* only once per call to {@link#next}. The behavior of an iterator

* is unspecified if the underlying collection is modified while the

* iteration is in progress in any way other than by calling this

* method.

*

* @implSpec

* The default implementation throws an instance of

* {@linkUnsupportedOperationException} and performs no other action.

*

*@throwsUnsupportedOperationException if the {@coderemove}

* operation is not supported by this iterator

*

*@throwsIllegalStateException if the {@codenext} method has not

* yet been called, or the {@coderemove} method has already

* been called after the last call to the {@codenext}

* method*/

default voidremove() {throw new UnsupportedOperationException("remove");

}/*** Performs the given action for each remaining element until all elements

* have been processed or the action throws an exception. Actions are

* performed in the order of iteration, if that order is specified.

* Exceptions thrown by the action are relayed to the caller.

*

* @implSpec

*

The default implementation behaves as if:

*

{@code*     while (hasNext())

* action.accept(next());

* }

*

*@paramaction The action to be performed for each element

*@throwsNullPointerException if the specified action is null

*@since1.8*/

default void forEachRemaining(Consumer super E>action) {

Objects.requireNonNull(action);while(hasNext())

action.accept(next());

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值