Spec-Zone.ru › OpenJDK 25

Интерфейс Iterable<T>

Параметры типа:
T - тип элементов, возвращаемых итератором
Все известные подинтерфейсы:
BeanContext, BeanContextServices, BlockingDeque<E>, BlockingQueue<E>, ClassModel, ClassReader, CodeAttribute, CodeModel, Collection<E>, CompoundElement<E>, ConstantPool, ConstantPoolBuilder, Deque<E>, DirectoryStream<T>, EventSet, FieldModel, List<E>, MethodModel, 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 (иногда называемого оператором цикла «для каждого»).
См. Спецификацию языка Java:
14.14.2 Оператор расширенного for
Начиная с версии:
1.5

Краткое описание методов

Модификатор и тип Метод Описание
default void forEach(Consumer<? super T> action)
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не вызовет исключение.
Iterator<T> iterator()
Возвращает итератор по элементам типа T.
default Spliterator<T> spliterator()
Создаёт Spliterator для элементов, описанных этим Iterable.

Подробное описание методов

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()
Создаёт Spliterator для элементов, описанных этим Iterable.
Требования к реализации:
Реализация по умолчанию создаёт рано связываемый сплитератор из Iterator итерируемого объекта. Сплитератор наследует свойства fail-fast итератора итерируемого объекта.
Примечание по реализации:
Обычно реализацию по умолчанию следует переопределять. Сплитератор, возвращаемый реализацией по умолчанию, имеет низкие возможности разделения, не имеет заданного размера и не сообщает никаких характеристик сплитератора. Реализующие классы почти всегда могут предоставить более эффективную реализацию.
Возвращает:
Spliterator для элементов, описанных этим Iterable.
Начиная с версии:
1.8

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/Iterable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API