zipWithNext

Platform and version requirements: JVM (1.2), JS (1.2), Native (1.2)
fun <T> Iterable<T>.zipWithNext(): List<Pair<T, T>>

Returns a list of pairs of each two adjacent elements in this collection.

The returned list is empty if this collection contains less than two elements.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val letters = ('a'..'f').toList()
val pairs = letters.zipWithNext()

println(letters) // [a, b, c, d, e, f]
println(pairs) // [(a, b), (b, c), (c, d), (d, e), (e, f)]
//sampleEnd
}
Platform and version requirements: JVM (1.2), JS (1.2), Native (1.2)
inline fun <T, R> Iterable<T>.zipWithNext(
    transform: (a: T, b: T) -> R
): List<R>

Returns a list containing the results of applying the given transform function to an each pair of two adjacent elements in this collection.

The returned list is empty if this collection contains less than two elements.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val values = listOf(1, 4, 9, 16, 25, 36)
val deltas = values.zipWithNext { a, b -> b - a }

println(deltas) // [3, 5, 7, 9, 11]
//sampleEnd
}

© 2010–2021 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/zip-with-next.html