recorrer - ¿Cómo puedo filtrar un valor de un arraylist en Kotlin?
recorrer arraylist kotlin (5)
Desea filtrar esta lista de cadenas que contienen meses.
var month : List<String> = arrayListOf("January", "February", "March")
Puede utilizar el método de lista filterNot() . Devuelve una lista que contiene todos los elementos excepto el predicado dado.
var filteredMonthList : List<String> = month.filterNot { s -> s == "January" }
// results: ["February", "March"]
Puede utilizar el método de lista filter() . Devuelve una lista que contiene todos los elementos que coinciden con el predicado dado.
var filteredMonthList : List<String> = month.filter { s -> s == "January" }
// results: ["January"]
Después de filter() si usamos el método single() , devolverá un solo valor y emitirá una excepción si hay más de un valor en la lista.
var filteredMonth : String = month.filter { s -> s == "January" }.single()
// result: "January"
Tengo una matriz:
var month: List<String> = arrayListOf("January", "February", "March")
Tengo que filtrar el mes "January" de la lista.
Hay una serie de funciones para filtrar colecciones. Si desea mantener solo los valores que coincidan con "January" , puede usar el filter() simple filter() :
val months = listOf("January", "February", "March")
months.filter { month -> month == "January" } // with explicit parameter name
months.filter { it == "January" } // with implicit parameter name "it"
Estos le darán una lista que contiene sólo "January" .
Si desea que todos los meses que no sean "January" , puede revertir la condición usando != , O usar filterNot() :
months.filter { it != "January" }
months.filterNot { it == "January" }
Estos te darán una lista que contiene "February" y "March" .
Tenga en cuenta que a diferencia de Java, usar los operadores == y != En Kotlin es en realidad lo mismo que llamar a la función equals en los objetos. Para más información, consulte la documentación sobre la equality .
Para obtener una lista completa de las funciones de recopilación en la biblioteca estándar, consulte la referencia de la API .
Puede usar este código para filtrar enero de la matriz, usando este código
var month: List<String> = arrayListOf("January", "February", "March")
// to get the result as list
var monthList: List<String> = month.filter { s -> s == "January" }
// to get a a string
var selectedMonth: String = month.filter { s -> s == "January" }.single()
println("the value 555 is $monthList")
println("the value 555 is $selectedMonth")
Solo comparto que si tiene una lista personalizada y comprueba si está nula o en blanco , puede verificar Kotlin en una sola línea. Solo hágalo así.
fun filterList(listCutom: List<Custom>?) {
var fiterList = listCutom!!.filter { it.label != "" }
//Here you can get the list which is not having any kind of lable blank
}
También puedes consultar múltiples condiciones.
fun filterList(listCutom: List<Custom>?) {
var fiterList = listCutom!!.filter { it.label != "" && it.value != ""}
//Here you can get the list which is not having any kind of lable or value blank
}
Nota: Supongo que la etiqueta y el valor son las variables de la clase de modelo personalizado .
También puedes usar find o findLast . Esto está destinado específicamente a devolver solo un valor en lugar de una lista de String devueltas en caso de filter .
var month: List<String> = arrayListOf("January", "February", "March")
var result = month.find { s -> s == "January" }