- 类型参数:
T- 迭代器返回的元素类型
- 所有已知的子接口:
BeanContext,BeanContextServices,BlockingDeque<E>,BlockingQueue<E>,Collection<E>,Deque<E>,DirectoryStream<T>,EventSet,List<E>,NavigableSet<E>,NodeSetData<T>,Path,Queue<E>,SecureDirectoryStream<T>,Set<E>,SortedSet<E>,TransferQueue<E>,XPathNodes
- 所有已知的实现类:
AbstractCollection,AbstractList,AbstractQueue,AbstractSequentialList,AbstractSet,ArrayBlockingQueue,ArrayDeque,ArrayList,AttributeList,BatchUpdateException,BeanContextServicesSupport,BeanContextSupport,ConcurrentHashMap.KeySetView,ConcurrentLinkedDeque,ConcurrentLinkedQueue,ConcurrentSkipListSet,CopyOnWriteArrayList,CopyOnWriteArraySet,DataTruncation,DelayQueue,DocTreePath,EnumSet,HashSet,JobStateReasons,LinkedBlockingDeque,LinkedBlockingQueue,LinkedHashSet,LinkedList,LinkedTransferQueue,PriorityBlockingQueue,PriorityQueue,RoleList,RoleUnresolvedList,RowSetWarning,SerialException,ServiceLoader,SQLClientInfoException,SQLDataException,SQLException,SQLFeatureNotSupportedException,SQLIntegrityConstraintViolationException,SQLInvalidAuthorizationSpecException,SQLNonTransientConnectionException,SQLNonTransientException,SQLRecoverableException,SQLSyntaxErrorException,SQLTimeoutException,SQLTransactionRollbackException,SQLTransientConnectionException,SQLTransientException,SQLWarning,Stack,SyncFactoryException,SynchronousQueue,SyncProviderException,TreePath,TreeSet,Vector
public interface Iterable<T>
实现此接口允许对象成为增强的
for 语句(有时称为“for-each 循环”语句)的目标。
- 看Java 语言规范:
-
14.14.2 增强的
for语句
- 自从:
- 1.5
-
方法总结
修饰符和类型方法描述default void对Iterable的每个元素执行给定的操作,直到处理完所有元素或操作引发异常。iterator()返回类型为T的元素的迭代器。default Spliterator<T>在这个Iterable描述的元素上创建一个Spliterator。
-
方法详情
-
iterator
返回类型为T的元素的迭代器。- 返回:
- 一个迭代器。
-
forEach
对Iterable的每个元素执行给定的操作,直到处理完所有元素或操作引发异常。如果指定了迭代顺序,则将按迭代顺序执行操作。操作抛出的异常被转发给调用者。如果操作执行修改元素的底层源的副作用,则此方法的行为是未指定的,除非重写类已指定并发修改策略。
- 实现要求:
-
默认实现的行为就像:
for (T t : this) action.accept(t); - 参数:
action- 对每个元素执行的操作- 抛出:
NullPointerException- 如果指定的操作为空- 自从:
- 1.8
-
spliterator
在这个Iterable描述的元素上创建一个Spliterator。- 实现要求:
-
默认实现从可迭代的
Iterator创建一个 early-binding 拆分器。拆分器继承了迭代器迭代器的 fail-fast 属性。 - 实现注意事项:
- 通常应该重写默认实现。默认实现返回的拆分器具有较差的拆分能力,未确定大小,并且不报告任何拆分器特征。实现类几乎总能提供更好的实现。
- 返回:
-
a
Spliterator覆盖了这个Iterable描述的元素。 - 自从:
- 1.8
-