J'ai un tableau:
var month: List<String> = arrayListOf("January", "February", "March")
Je dois filtrer la liste pour ne me laisser que "January"
.
J'ai un tableau:
var month: List<String> = arrayListOf("January", "February", "March")
Je dois filtrer la liste pour ne me laisser que "January"
.
Vous pouvez utiliser ce code pour filtrer January du tableau en utilisant ce code
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")
Il y a un certain nombre de fonctions de filtrage des collections, si vous voulez garder seulement les valeurs de correspondance "January"
, vous pouvez utiliser une 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"
Cela vous donnera une liste ne contenant qu' "January"
.
Si vous voulez tous les mois qui ne sont pas d' "January"
, vous pouvez inverser la condition à l'aide de !=
, ou utiliser filterNot()
:
months.filter { it != "January" }
months.filterNot { it == "January" }
Cela vous donnera une liste contenant "February"
et "March"
.
Notez que contrairement à Java, à l'aide de l' ==
et !=
opérateurs Kotlin est en fait la même que l'appel de la equals
de la fonction sur les objets. Pour en savoir plus, voir la documentation sur l'égalité.
Pour la liste complète de la collection de fonctions de la bibliothèque standard, voir la référence de l'API.
Vous souhaitez filtrer cette liste de Chaînes de caractères contenant des mois.
var month : List<String> = arrayListOf("January", "February", "March")
Vous pouvez utiliser filterNot()
méthode de la liste. Elle retourne une liste contenant tous les éléments sauf le prédicat.
var filteredMonthList : List<String> = month.filterNot { s -> s == "January" }
// results: ["February", "March"]
Vous pouvez utiliser filter()
méthode de la liste. Elle retourne une liste contenant tous les éléments correspondant au prédicat.
var filteredMonthList : List<String> = month.filter { s -> s == "January" }
// results: ["January"]
Après l' filter()
si nous utilisons single()
méthode, puis elle retourne une valeur unique et de lever une exception si plus d'une valeur est dans la liste.
var filteredMonth : String = month.filter { s -> s == "January" }.single()
// result: "January"
Je viens de dire que si vous avez une liste personnalisée et que vous vérifiez si elle est nulle ou vide, vous pouvez enregistrer Kotlin sur une seule ligne. Faites-le simplement comme ça.
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
}
Vous pouvez également vérifier plusieurs conditions
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
}
Remarque: je suppose que l' étiquette et la valeur sont les variables de la classe de modèle personnalisé .
Vous pouvez également utiliser find ou findLast
. Ceci est spécifiquement conçu pour renvoyer une seule valeur au lieu d'une liste de String
renvoyée en cas de filter
.
var month = arrayListOf("January", "February", "March")
var result = month.find { s -> s == "January" }
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.