НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
104 of 1310 menu

Функция asSequence

Функция asSequence преобразует коллекцию или массив в последовательность типа Sequence. Это позволяет выполнять цепочки операций (такие как filter, map) лениво (отложенно), что может улучшить производительность при работе с большими данными за счет избежания создания промежуточных коллекций.

Синтаксис

fun <T> Iterable<T>.asSequence(): Sequence<T>
fun <T> Array<T>.asSequence(): Sequence<T>
fun ByteArray.asSequence(): Sequence<Byte>
fun ShortArray.asSequence(): Sequence<Short>
fun IntArray.asSequence(): Sequence<Int>
fun LongArray.asSequence(): Sequence<Long>
fun FloatArray.asSequence(): Sequence<Float>
fun DoubleArray.asSequence(): Sequence<Double>
fun BooleanArray.asSequence(): Sequence<Boolean>
fun CharArray.asSequence(): Sequence<Char>
fun <K, V> Map<K, V>.asSequence(): Sequence<Pair<K, V>>

Пример

Преобразуем список чисел в последовательность и выполним цепочку операций:

val numbers = listOf(1, 2, 3, 4, 5) val seq = numbers.asSequence() val res = seq .filter { it > 2 } .map { it * 2 } .toList() println(res)

Результат выполнения кода:

List<Int> [6, 8, 10]

Пример

Преобразуем массив символов в последовательность:

val chars = charArrayOf('a', 'b', 'c', 'd', 'e') val seq = chars.asSequence() val res = seq .filter { it != 'c' } .toList() println(res)

Результат выполнения кода:

List<Char> ['a', 'b', 'd', 'e']

Пример

Преобразуем Map в последовательность пар:

val map = mapOf("a" to 1, "b" to 2, "c" to 3) val seq = map.asSequence() val res = seq .filter { it.value > 1 } .toMap() println(res)

Результат выполнения кода:

Map {"b"=2, "c"=3}

Пример

Демонстрация отложенного выполнения операций с последовательностью:

val numbers = listOf(1, 2, 3, 4, 5) println("With sequence (lazy):") val seqResult = numbers.asSequence() .filter { println("filter: $it") it > 2 } .map { println("map: $it") it * 2 } .first() println("Result: $seqResult")

Результат выполнения кода:

With sequence (lazy): filter: 1 filter: 2 filter: 3 map: 3 Result: 6

Смотрите также

  • функцию toList,
    которая преобразует последовательность обратно в список
  • функцию toSet,
    которая преобразует последовательность в множество
  • функцию asIterable,
    которая преобразует коллекцию в итерируемый объект
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить