Kotlin
文章目錄
- Kotlin
- 1.過濾
- 2.排序
- 3.分組
- 4.最值
- 5.去重
進階特性為在java的基礎上kotlin對list的操作
1.過濾
find為找到第一個
fiter為過濾全部的
filterTo為過濾到mu中,過濾兩個張開頭的list
fun main(args: Array) {
var list1 = listOf("張三","裡斯","張思")
var list2 = listOf("賬務","張武")
var list3 = list1.find { it
it.startsWith("張")
}
println(list3)
var list4 = list1.filter{it
it.startsWith("張")
}
println(list4)
var mu = mutableListOf()
list1.filterTo(mu,{it
it.startsWith("張")
})
list2.filterTo(mu,{it
it.startsWith("張")
})
println(mu)
//index為偶數的
val list5 = list1.filterIndexed{index:Int,s:String->
index%2==0
}
println(list5)
}
結果
張三
[張三, 張思]
[張三, 張思, 張武]
[張三, 張思]
2.排序
根據ASCII排序
也可以根據自定義去排序
fun main(args: Array) {
var list = listOf("a","b","c")
println(list.sorted())
println(list.sortedDescending())
var list1 = listOf(person1("林",11), person1("王",15), person1("陳",13))
var list2 = list1.sortedBy { it.age }
println(list2)
var list3 = list1.sortedByDescending { it.age }
println(list3)
}
data class person1(var name:String,var age:Int)
結果
[a, b, c]
[c, b, a]
[person1(name=林, age=11), person1(name=陳, age=13), person1(name=王, age=15)]
[person1(name=王, age=15), person1(name=陳, age=13), person1(name=林, age=11)]
3.分組
fun main(args: Array) {
var list = listOf("王五","張三","張思","李四")
var map = list.groupBy { it
var fist = it.substring(0,1)
when(fist){
"張"->"張"
"李"->"李"
else->"其他"
}
}
println(map)
}
結果
{其他=[王五], 張=[張三, 張思], 李=[李四]}
4.最值
可以自定義
也可以按照ASCII去取
fun main(args: Array) {
val list = listOf("a","b","z")
println(list.max())
println(list.min())
var list1 = listOf(person("林",11), person("王",15), person("陳",13))
var list2 = list1.maxBy { it.age }
var list3 = list1.sortedBy { it.age }
println(list3)
println(list2)
}
data class person(var name:String,var age:Int)
結果
z
a
[person(name=林, age=11), person(name=陳, age=13), person(name=王, age=15)]
person(name=王, age=15)
5.去重
fun main(args: Array) {
var list = listOf("張三","張三","裡斯","張思")
var set = list.toSet()
println(set)
println(list.distinct())
//取同性
val list2 = list.distinctBy {
it.substring(0,1)
}
println(list2)
}