Filtern Sie eine Liste in Kotlin
-
Verwenden Sie die Funktion
filter()
, um eine Liste in Kotlin zu filtern -
Verwenden Sie die Funktion
filterIndexed()
, um eine Liste in Kotlin zu filtern -
Verwenden Sie die Funktion
filterNot()
, um eine Liste in Kotlin zu filtern -
Verwenden Sie die Funktion
filterIsInstance()
, um eine Liste in Kotlin zu filtern -
Verwenden Sie die Funktion
filterNotNull()
, um eine Liste in Kotlin zu filtern -
Verwenden Sie die Funktion
Partition()
, um eine Liste in Kotlin zu filtern
Angenommen, Sie haben eine Sammlung von Personendetails und möchten nur Personen über 20 Jahren aus der gesamten Sammlung abrufen. Wie wirst du das machen? Durch Filtern!
Filtern ist ein Konzept zum Verarbeiten von Sammlungen in Kotlin. Kotlin ermöglicht das Filtern von Sammlungen mit Hilfe von Prädikaten.
Prädikate sind Lambda-Funktionen, die ein Element einer Sammlung nehmen und es mit der Ausgabe der Funktion abgleichen. Stimmt die Ausgabe überein, gibt das Prädikat true
zurück; andernfalls wird false
zurückgegeben.
Die Standardbibliothek von Kotlin verfügt über einige Funktionen, die das Filtern ermöglichen, ohne die anfängliche Sammlung zu ändern. Daher ist das Filtern sowohl mit änderbaren als auch mit schreibgeschützten Sammlungen möglich.
Wir können die resultierende Sammlung auch in Funktionen oder Operationen verwenden, indem wir sie einer Variablen zuweisen oder sie verketten, nachdem wir die erforderlichen Ergebnisse gefiltert haben. Dieser Artikel führt Sie durch verschiedene Funktionen, die Sie zusammen mit Prädikatausdrücken zum Filtern von Listen in Kotlin verwenden können.
Verwenden Sie die Funktion filter()
, um eine Liste in Kotlin zu filtern
Die Funktion filter()
ist die grundlegendste Funktion der Standardbibliothek zum Filtern. Es akzeptiert einen Prädikatausdruck und gibt eine Sammlung mit den Elementen zurück, die mit dem ausgeführten Wert des Prädikats übereinstimmen.
fun main() {
val num = arrayListOf("two", "eleven", "eighteen", "thirty-nine", "fourty-five")
val newNum = num.filter { it.length > 6 }
println(newNum)
}
Ausgang:
Verwenden Sie die Funktion filterIndexed()
, um eine Liste in Kotlin zu filtern
Die Kotlin-Funktion filter()
kann die Werte des Prädikats und des Elements abgleichen. Es kann jedoch nicht die Werte von Elementen an bestimmten Indizes überprüfen.
Die Funktion filterIndexed()
kann sowohl den Wert als auch den Index des Listenelements prüfen. Der Prädikatausdruck nimmt hier zwei Argumente: für den Index und den Wert.
In diesem Beispiel verwenden wir denselben Code wie oben. Aber dieses Mal werden wir nur das Element eliminieren, dessen Länge kleiner als 6 ist und den Indexwert 1 hat.
fun main() {
val num = arrayListOf("two", "eleven", "eighteen", "thirty-nine", "fourty-five")
val newNum = num.filterIndexed { index, it -> (index!=1) && (it.length > 6) }
println(newNum)
}
Verwenden Sie die Funktion filterNot()
, um eine Liste in Kotlin zu filtern
Wir können auch Negativfilter mit der Funktion filterNot
für den Kotlin-Filter anwenden. Betrachten Sie das folgende Beispiel, um dieses Konzept zu verstehen.
Die Funktion filterNot()
kehrt die Operationen der Funktion filter()
um. Es wird eine Liste mit allen Elementen zurückgegeben, die gegen das Prädikat false ergeben.
fun main() {
val num = arrayListOf("two", "eleven", "eighteen", "thirty-nine", "fourty-five")
val newNum = num.filterNot { it.length > 6 }
println(newNum)
}
Verwenden Sie die Funktion filterIsInstance()
, um eine Liste in Kotlin zu filtern
Bisher haben wir Kotlin-Listen anhand von Werten und Indizes gefiltert. Mit filterIsInstance()
können wir basierend auf dem Datentyp der Elemente filtern.
Hier erstellen wir eine Liste mit mehreren Datentypen und filtern dann nur String-Werte daraus heraus.
fun main() {
val Str = listOf(12, null, "five", "nine", 11.0)
println("Print only string values from the list:")
Str.filterIsInstance<String>().forEach {
println(it)
}
}
Ausgang:
Verwenden Sie die Funktion filterNotNull()
, um eine Liste in Kotlin zu filtern
Diese Funktion filtert nur Nicht-Null-Elemente. Alle null
-Elemente werden herausgefiltert, wenn wir die Kotlin-Funktion filterNotNull()
verwenden.
Hier ist ein Beispiel für die Erstellung einer Liste mit einigen null
- und Nicht-Null-Werten. Wir werden dann die Funktion filterNotNull()
verwenden, um nur Nicht-Null-Elemente in der neuen Liste zu filtern.
fun main() {
val Num = listOf("twelve", null, null, "fourteen", null, "eighteen")
Num.filterNotNull().forEach {
println(it.uppercase())
}
}
Ausgang:
Verwenden Sie die Funktion Partition()
, um eine Liste in Kotlin zu filtern
Neben der Filterfunktion verfügt Kotlin auch über die Funktion partition()
, die das Filtern ermöglicht. Der Hauptunterschied zwischen den beiden ist die Anzahl der Listen, die sie zurückgeben.
Die Filterfunktion gibt nur eine Liste mit den Elementen zurück, die dem Prädikat entsprechen. Aber die Funktion partition()
gibt zwei Listen zurück: eine mit den Elementen, die auf das Prädikat passen, und eine mit den Elementen, die nicht auf das Prädikat passen.
Wir erstellen eine Liste und filtern alle Elemente in zwei separaten Listen mit der Funktion partition()
.
fun main() {
val Num = listOf("eleven", "twelve", "thirteen", "seventeen", "eighteen")
val (matchList, nonMatchList) = Num.partition { it.length < 7 }
println(matchList)
println(nonMatchList)
}
Ausgang:
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn