Коллекции (наборы, карты и списки) — это то, что мы используем ежедневно. Обход (итерация) — это наиболее распространенная операция, которую мы выполняем над любой коллекцией.
Итераторы используются для обхода объекта коллекции. Он обеспечивает последовательный доступ к элементам объекта коллекции, не раскрывая основную структуру коллекции.

This post was originally posted at https://agrawalsuneet.github.io/blogs/iterators-in-kotlin/ and reposted on Medium on 12th April 2022.

Как получить объект итератора?

Ссылочный объект итератора можно получить с помощью функции iterator(), которая объявлена ​​в интерфейсе Iterable для универсального типа T. Интерфейс Iterable расширяется интерфейсом Collection, который реализуется всеми неизменяемыми наборами, картами и списками.

/**
 * Classes that inherit from this interface can be represented as a sequence of elements that can
 * be iterated over.
 * @param T the type of element being iterated over. The iterator is covariant in its element type.
 */
public interface Iterable<out T> {
    /**
     * Returns an iterator over the elements of this object.
     */
    public operator fun iterator(): Iterator<T>
}

Iterable имеет еще один вариант интерфейса, такой как MutableIterable, который имеет ту же функцию iterator(), но этот интерфейс расширен MutableCollection, который реализуется изменяемыми наборами, картами и списками.

/**
 * Classes that inherit from this interface can be represented as a sequence of elements that can
 * be iterated over and that supports removing elements during iteration.
 * @param T the type of element being iterated over. The mutable iterator is invariant in its element type.
 */
public interface MutableIterable<out T> : Iterable<T> {
    /**
     * Returns an iterator over the elements of this sequence that supports removing elements during iteration.
     */
    override fun iterator(): MutableIterator<T>
}

Как использовать объект итератора?

Пожалуйста, продолжайте читать на https://agrawalsuneet.github.io/blogs/iterators-in-kotlin/

Это все на данный момент. Вы можете прочитать другие мои интересные блоги здесь или насладиться моими играми или приложениями, перечисленными здесь. Не стесняйтесь использовать мои компоненты Android с открытым исходным кодом в своем приложении, указанном здесь. Или напишите электронное письмо, если вы не нашли то, что ищете, и вам нужна помощь.