Коллекции (наборы, карты и списки) — это то, что мы используем ежедневно. Обход (итерация) — это наиболее распространенная операция, которую мы выполняем над любой коллекцией.
Итераторы используются для обхода объекта коллекции. Он обеспечивает последовательный доступ к элементам объекта коллекции, не раскрывая основную структуру коллекции.
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 с открытым исходным кодом в своем приложении, указанном здесь. Или напишите электронное письмо, если вы не нашли то, что ищете, и вам нужна помощь.