Функция asIterable
Функция asIterable преобразует исходный массив
или коллекцию в объект, реализующий интерфейс Iterable.
Это позволяет использовать полученный объект в циклах
и других конструкциях, требующих итерируемую коллекцию.
Функция не создает копию данных, а возвращает представление
оригинальной коллекции в виде Iterable.
Синтаксис
fun <T> Array<out T>.asIterable(): Iterable<T>
fun ByteArray.asIterable(): Iterable<Byte>
fun ShortArray.asIterable(): Iterable<Short>
fun IntArray.asIterable(): Iterable<Int>
fun LongArray.asIterable(): Iterable<Long>
fun FloatArray.asIterable(): Iterable<Float>
fun DoubleArray.asIterable(): Iterable<Double>
fun BooleanArray.asIterable(): Iterable<Boolean>
fun CharArray.asIterable(): Iterable<Char>
fun <T> Iterable<T>.asIterable(): Iterable<T>
fun <T> Collection<T>.asIterable(): Iterable<T>
Пример
Преобразуем массив символов в Iterable
и проитерируемся по нему:
val charArray = charArrayOf('a', 'b', 'c', 'd', 'e')
val iterable: Iterable<Char> = charArray.asIterable()
for (char in iterable) {
println(char)
}
Результат выполнения кода:
a
b
c
d
e
Пример
Преобразуем массив чисел в Iterable
и используем методы интерфейса Iterable:
val intArray = intArrayOf(1, 2, 3, 4, 5)
val iterable: Iterable<Int> = intArray.asIterable()
val iterator = iterable.iterator()
while (iterator.hasNext()) {
print(iterator.next())
print(" ")
}
Результат выполнения кода:
1 2 3 4 5
Пример
Преобразуем список в Iterable
и используем его в функции высшего порядка:
val list = listOf(10, 20, 30, 40, 50)
val iterable: Iterable<Int> = list.asIterable()
val filtered = iterable.filter { it > 25 }
println(filtered)
Результат выполнения кода:
[30, 40, 50]
Пример
Покажем, что asIterable не создает копию,
а работает с оригинальным массивом:
val originalArray = arrayOf(1, 2, 3)
val iterable: Iterable<Int> = originalArray.asIterable()
originalArray[0] = 100
println("Original array: ${originalArray.joinToString()}")
println("Iterable: ${iterable.joinToString()}")
Результат выполнения кода:
Original array: 100, 2, 3
Iterable: 100, 2, 3
Смотрите также
-
функцию
toList,
которая создает новый список из массива или коллекции -
функцию
toSet,
которая создает множество из массива или коллекции -
функцию
asList,
которая преобразует массив в список без копирования -
функцию
asSequence,
которая преобразует коллекцию в последовательность