Module java.base
Package java.lang

Interface Iterable<T>

类型参数:
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>, SequencedCollection<E>, SequencedSet<E>, 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
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    forEach(Consumer<? super T> action)
    Iterable的每个元素执行给定操作,直到所有元素都已处理完或操作引发异常。
    返回一个元素类型为T的迭代器。
    default Spliterator<T>
    创建一个Iterable描述的元素的Spliterator
  • Method Details

    • iterator

      Iterator<T> iterator()
      返回一个元素类型为T的迭代器。
      返回:
      一个迭代器。
    • forEach

      default void forEach(Consumer<? super T> action)
      Iterable的每个元素执行给定操作,直到所有元素都已处理完或操作引发异常。如果指定了顺序,则按迭代顺序执行操作。操作引发的异常将传递给调用者。

      如果操作执行会修改元素的底层源的副作用,则此方法的行为是未指定的,除非覆盖类已指定了并发修改策略。

      实现要求:

      默认实现的行为如下:

      
           for (T t : this)
               action.accept(t);
       
      参数:
      action - 每个元素要执行的操作
      抛出:
      NullPointerException - 如果指定的操作为null
      自从:
      1.8
    • spliterator

      default Spliterator<T> spliterator()
      创建一个由这个Iterable描述的元素上的Spliterator
      实现要求:
      默认实现从可迭代对象的Iterator创建一个早期绑定的分割迭代器。该分割迭代器继承了可迭代对象迭代器的快速失败属性。
      实现注意:
      默认实现通常应该被重写。默认实现返回的分割迭代器具有较差的分割能力,没有固定大小,并且不报告任何分割迭代器特性。实现类几乎总是可以提供更好的实现。
      返回:
      一个由这个Iterable描述的元素上的Spliterator
      自从:
      1.8