zipWithNext

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.

Since Kotlin

1.2

Samples

import kotlin.test.*

fun main() { 
   //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
}

inline fun <T, R> Iterable<T>.zipWithNext(transform: (a: T, b: T) -> R): List<R>(source)

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.

Since Kotlin

1.2

Samples

import kotlin.test.*

fun main() { 
   //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
}