API de programación funcional de Kotlin Notes (10)
Tipo de datos de nota de Kotlin (1) Cadena de nota de Kotlin (2) Operador de nota de Kotlin (3) Función de nota de Kotlin (4) Nota de Kotlin orientada a objetos (5) Herencia de nota de Kotlin, clase abstracta, interfaz (6) Función de orden superior de nota de Kotlin (7) Genéricos de notas de Kotlin (8) Contenedor de datos de notas de Kotlin (9)
Directorio de artículos
uno para cada uno
var strArr= arrayOf("name","age")
strArr.forEach {
println(it)
}
var listName= arrayListOf("tom","Lili")
listName.forEach {
println(it)
}
var mapkv= hashSetOf(1 to "tom",2 to "lili")
mapkv.forEach {
println("key=${it.first }, value=${it.second}")
}
name
age
tom
Lili
key=1, value=tom
key=2, value=lili
dos, para cada uno indexado
val strArray = arrayOf("张三", "李四", "王五", "董六")//创建字符串数组
val set = setOf(1, 3, 34, 54, 75)
strArray.forEachIndexed {
index, s ->
println("index:${index} s:${s}")
}
set.forEachIndexed {
index, s ->
println("index:${index} s:${s}")
}
3. Función de filtro
1. Tipo de recogida de devolución
1, filtro
La operación de filtrado utiliza la función de filtro, que puede filtrar colecciones de colecciones, colecciones de mapas o elementos de matriz. Las
colecciones de colecciones y las matrices devuelven una colección de listas y las colecciones de mapas devuelven una colección de mapas.
users.filter {
it.name.startsWith("T",ignoreCase = false)
}
.filter {
it.name==="Tony"
}
.forEach {
println(it.name)
}
Tony
2, gota
Devuelve una colección de listas que excluye los primeros n elementos
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.takeLast(3)) //[34, 54, 75]
3, tomar
Devuelve los primeros n elementos de la colección List.
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.take(3)) //[1, 3, 34]
4, filtro no nulo
Devuelve una colección List de elementos no vacíos. Tenga en cuenta que la matriz Array es una matriz de objetos y no puede
ser una matriz de tipos de datos básicos como IntArray y FloatArray
5, tomar el último
Devuelve la colección List de los últimos n elementos.
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.takeLast(3)) //[34, 54, 75]
6, rebanada
Devuelve la colección List de elementos en el índice especificado.
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.slice(listOf(0, 2))) //[1, 34] ①
7, no filtrar
Al contrario de filtrar, filtre los datos que no cumplan las condiciones.
2. Devolver un solo elemento
1, encontrar
Devuelve el primer elemento que cumple la condición, o
nulo si no hay ningún elemento que cumpla la condición
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.find {
it > 10 }) //34
2、buscarÚltimo
Devuelve el último elemento que cumple la condición, o
nulo si no hay ningún elemento que cumpla la condición.
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.findLast {
it < -1 }) //null
3, primero
Devuelve el primer elemento, la función no tiene parámetros.
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.first()) //1 ②
4, último
Devuelve el último elemento, la función no tiene parámetros.
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.last()) //75
5, primero{}
Devuelve el primer elemento que cumple los criterios, la función tiene un argumento. Si no hay ningún
elemento coincidente, se lanza una excepción.
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.first {
it > 10 }) //34 ③
6, último{}
Devuelve el último elemento que cumple los criterios, la función tiene un argumento. Si
no hay ningún elemento elegible, se lanza una excepción
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.last {
it > 10 }) //75
7, primero o nulo
Devuelve el primer elemento que cumple los criterios, la función tiene un argumento. Devuelve nulo si no hay ningún
elemento coincidente
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.firstOrNull {
it > 100 }) //null ④
8, último o nulo
Devuelve el último elemento que cumple los criterios, la función tiene un argumento. Devuelve nulo si no hay ningún
elemento coincidente
val map = mapOf(102 to "张三", 105 to "李四", 109 to "王五")
val array = intArrayOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "B", "C")
println(array.lastOrNull {
it > 100 }) //null
4. Mapeo
- mapNotNull devuelve una colección List, que contiene
el resultado convertido de los elementos no nulos de la colección original.
Tenga en cuenta que la matriz Array es una matriz de objetos y no puede ser una matriz de tipos de datos básicos como IntArray y FloatArray - mapIndexed devuelve una colección de listas que contiene
los resultados convertidos y sus índices para cada elemento de la colección original - flatMap es un mapa plano, que puede transformar matrices o colecciones multidimensionales en colecciones unidimensionales.
fun main(args: Array<String>) {
val set = setOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "b", "C")
println(charList.mapNotNull {
it } //[A, b, C] ①
.map {
it.toLowerCase() }) //[a, b, c] ②
println(set.mapIndexed {
index, s -> index + s }) // [1, 4, 36, 57, 79] ③
val datas = listOf(listOf(10, 20), listOf(20, 40))
val flatMapList = datas.flatMap {
e -> e.map {
it * 10 } }
println(flatMapList)//[100, 200, 200, 400]
}
5. Función de clasificación
- sorted devuelve la colección o matriz en orden ascendente
- sortedBy Ordenar en orden ascendente después de calcular la expresión especificada
- ordenadoDescendente 降序
- sortedByDescending clasifica en orden descendente después de calcular la expresión especificada
- invertido invierte el original
fun main(args: Array<String>) {
val set = setOf(1, -3, 34, -54, 75)
//升序
println(set.sorted())//[-54, -3, 1, 34, 75]
println("Users升序输出:")
users.sortedBy {
it.name }.forEach {
println(it) } ①
//降序
println(set.sortedDescending())//[75, 34, 1, -3, -54]
println("Users降序输出:")
users.sortedByDescending {
it.name }.forEach {
println(it) } ②
//倒置
println(set.reversed())//[75, -54, 34, -3, 1]
}