partition
inline fun <T> Array<out T>.partition(predicate: (T) -> Boolean): Pair<List<T>, List<T>>
Content copied to clipboard
inline fun ByteArray.partition(predicate: (Byte) -> Boolean): Pair<List<Byte>, List<Byte>>
Content copied to clipboard
inline fun ShortArray.partition(predicate: (Short) -> Boolean): Pair<List<Short>, List<Short>>
Content copied to clipboard
inline fun IntArray.partition(predicate: (Int) -> Boolean): Pair<List<Int>, List<Int>>
Content copied to clipboard
inline fun LongArray.partition(predicate: (Long) -> Boolean): Pair<List<Long>, List<Long>>
Content copied to clipboard
inline fun FloatArray.partition(predicate: (Float) -> Boolean): Pair<List<Float>, List<Float>>
Content copied to clipboard
inline fun DoubleArray.partition(predicate: (Double) -> Boolean): Pair<List<Double>, List<Double>>
Content copied to clipboard
Splits the original array into pair of lists, where first list contains elements for which predicate yielded true, while second list contains elements for which predicate yielded false.
Samples
import samples.*
import kotlin.test.*
fun main() {
//sampleStart
val array = intArrayOf(1, 2, 3, 4, 5)
val (even, odd) = array.partition { it % 2 == 0 }
assertPrints(even, "[2, 4]")
assertPrints(odd, "[1, 3, 5]")
//sampleEnd
}Splits the original collection into pair of lists, where first list contains elements for which predicate yielded true, while second list contains elements for which predicate yielded false.
Samples
import samples.*
fun main() {
//sampleStart
data class Person(val name: String, val age: Int) {
override fun toString(): String {
return "$name - $age"
}
}
val list = listOf(Person("Tom", 18), Person("Andy", 32), Person("Sarah", 22))
val result = list.partition { it.age < 30 }
assertPrints(result, "([Tom - 18, Sarah - 22], [Andy - 32])")
//sampleEnd
}