1.partition
將一個集合拆分成兩個集合,滿足條件的和不滿足條件的分別在兩個集合中
package com.example.kotlin01
val list = listOf(4, 1, 2, 3,3)
fun main() {
val (list1,list2) = list.partition { it>2 }
println(list1)
println(list2)
}
[4, 3, 3]
[1, 2]
2.plus
兩個集合合併成一個集合
package com.example.kotlin01
val list = listOf(4, 1, 2, 3,3)
val list2 = listOf(4, 1, 2, 3,3)
fun main() {
val result = list.plus(list2)
println(result)
}
[4, 1, 2, 3, 3, 4, 1, 2, 3, 3]
3.zip
對應下標一一對應,組成一個新的集合,新的集合長度由最小的那個決定,集合的類型是Pair
package com.example.kotlin01
val list = listOf(8, 1, 2, 3,3)
val list2 = listOf(4, 1, 2, 3,3,8,9,10)
fun main() {
val result = list.zip(list2)
println(result)
}
[(8, 4), (1, 1), (2, 2), (3, 3), (3, 3)]
4.unzip
Pair類型的集合中,對應Pair對象的屬性合併成一個Pair
package com.example.kotlin01
val list = listOf(Pair("小明","男"), Pair("小狗","男"))
val list2 = listOf(Pair("小紅","女"), Pair("小豬","女"))
fun main() {
val result = list.unzip()
println(result)
}
([小明, 小狗], [男, 男])
zip和 unzip的區別在於,zip 是有兩個list生成一個list,list裏面是Pair元素。
而unzip是Pair元素的List轉換成Pair,Pair中的屬性分別是list。