Kotlin
Article Directory
Kotlin advanced features for the operation of the list on the basis of java
1. Filter
find to find the first
fiter to filter all
filterTo as a filter to mu, the first two sheets of filter list
fun main(args: Array<String>) {
var list1 = listOf<String>("张三","里斯","张思")
var list2 = listOf<String>("账务","张武")
var list3 = list1.find { it
it.startsWith("张")
}
println(list3)
var list4 = list1.filter{it
it.startsWith("张")
}
println(list4)
var mu = mutableListOf<String>()
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)
}
The results
Zhang
[Zhang, Zhang Si]
[Joe Smith, Zhang Si, Zhang Wu]
[Joe Smith, Zhang Si]
2. Sort
According to ASCII sort
can also be sorted according to custom
fun main(args: Array<String>) {
var list = listOf<String>("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)
Results
[A, B, C]
[C, B, A]
[PERSON1 (name = Lin, age = 11), person1 ( name = Chen, age = 13), person1 ( name = Wang, Age = 15)]
[ person1 (name = Wang, age = 15), person1 ( name = Chen, age = 13), person1 ( name = Lin, age = 11)]
3. Packet
fun main(args: Array<String>) {
var list = listOf<String>("王五","张三","张思","李四")
var map = list.groupBy { it
var fist = it.substring(0,1)
when(fist){
"张"->"张"
"李"->"李"
else->"其他"
}
}
println(map)
}
Results
{= Other [Wang Wu] Zhang = [Zhang, Zhang Si] Li = [John Doe]}
4. Extreme Value
You can customize
you can also pick up the ASCII
fun main(args: Array<String>) {
val list = listOf<String>("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)
Results
z
a
[person (name = Hayashi, age = 11), person ( name = Chen, age = 13), person ( name = Wang, age = 15)]
person (name = Wang, age = 15)
5. deduplication
The first method is a set
second method is a distinct
third is taken of the same sex
fun main(args: Array<String>) {
var list = listOf<String>("张三","张三","里斯","张思")
var set = list.toSet()
println(set)
println(list.distinct())
//取同性
val list2 = list.distinctBy {
it.substring(0,1)
}
println(list2)
}
The results
[Joe Smith, Rees, Zhang Si]
[seating, Rees, Zhang Si]
[seating, Rees]