Filtern Sie eine Liste in Kotlin

Kailash Vaviya 15 Februar 2024
  1. Verwenden Sie die Funktion filter(), um eine Liste in Kotlin zu filtern
  2. Verwenden Sie die Funktion filterIndexed(), um eine Liste in Kotlin zu filtern
  3. Verwenden Sie die Funktion filterNot(), um eine Liste in Kotlin zu filtern
  4. Verwenden Sie die Funktion filterIsInstance(), um eine Liste in Kotlin zu filtern
  5. Verwenden Sie die Funktion filterNotNull(), um eine Liste in Kotlin zu filtern
  6. Verwenden Sie die Funktion Partition(), um eine Liste in Kotlin zu filtern
Filtern Sie eine Liste in Kotlin

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 Kotlin-Filterfunktion

Code ausführen

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 Kotlin filterIndexed-Funktion

Code ausführen

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 FilterNot-Funktion von Kotlin

Code ausführen

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 Kotlin-Funktion filterIsInstance

Code ausführen

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 Kotlin-Funktion filterNotNull

Code ausführen

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:

Verwenden Sie die Kotlin-Partitionsfunktion

Code ausführen

Kailash Vaviya avatar Kailash Vaviya avatar

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

Verwandter Artikel - Kotlin List