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
inline fun BooleanArray.partition(predicate: (Boolean) -> Boolean): Pair<List<Boolean>, List<Boolean>>
Content copied to clipboard
inline fun CharArray.partition(predicate: (Char) -> Boolean): Pair<List<Char>, List<Char>>
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
}
inline fun <T> Iterable<T>.partition(predicate: (T) -> Boolean): Pair<List<T>, List<T>>
Content copied to clipboard
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
}