Erstellen Sie eine leere veränderliche Liste in Kotlin
-
Verwenden Sie die
mutableListOf()
-Methode in Kotlin -
Verwenden Sie die
arrayListOf()
-Methode in Kotlin - Verwenden Sie den Konstruktor einer Datenstruktur in Kotlin
- Verwendung der impliziten Deklaration in Kotlin
- Fazit
Bevor wir uns mit den Beispielen befassen, müssen wir zwei gebräuchliche Begriffe bei der Arbeit mit Daten vom Typ List
verstehen.
Die Begriffe umfassen veränderlich und unveränderlich. Eine veränderliche Liste ist eine Liste, die durch Hinzufügen oder Entfernen von Elementen in der Datenstruktur geändert werden kann.
Eine unveränderliche Liste ist eine Liste, die weder durch Hinzufügen noch durch Entfernen von Elementen in der Datenstruktur modifiziert werden kann.
Aus den beiden Begriffen können wir zwei Arten von Listen haben, die List
und MutableList
enthalten. Beachten Sie, dass MutableList
eine Liste ist, da sie von der Schnittstelle List
erbt.
Der Typ MutableList
gibt eine Liste zurück, die geändert werden kann, und der Typ List
gibt eine Liste zurück, die nicht geändert werden kann. Wenn Sie jedoch eine Implementierung der List
erstellen, ohne anzugeben, ob die Liste veränderlich oder unveränderlich ist, wird standardmäßig davon ausgegangen, dass sie veränderbar ist.
Dieses Tutorial zeigt uns, wie man eine leere veränderliche Liste erstellt. Eine leere Liste bedeutet, dass die Datenstruktur keine Elemente enthält.
Verwenden Sie die mutableListOf()
-Methode in Kotlin
Gehen Sie zu IntelliJ
und erstellen Sie ein neues Kotlin-Projekt. Erstellen Sie eine neue Kotlin-Datei mit dem Namen Main.kt
im Ordner kotlin
.
Kopieren Sie den folgenden Code und fügen Sie ihn in die Datei ein.
val mutableEmptyList: MutableList<String> = mutableListOf();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
Die Methode mutableListOf()
gibt eine leere Liste vom Typ MutableList
zurück, was bedeutet, dass wir Elemente in der Datenstruktur hinzufügen und entfernen können. Um dies zu überprüfen, können Sie die Methode add()
oder remove()
für das zurückgegebene Objekt aufrufen.
Führen Sie den obigen Code aus und beachten Sie, dass die Methode isEmpty()
true
zurückgibt, bevor ein Element hinzugefügt wird, und false
, nachdem ein Element hinzugefügt wird, wie unten gezeigt.
true
false
Verwenden Sie die arrayListOf()
-Methode in Kotlin
Kommentieren Sie das vorherige Beispiel und fügen Sie den folgenden Code in die Datei Main.kt
ein.
val mutableEmptyList: MutableList<String> = arrayListOf();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
Die Methode arrayListOf()
gibt eine leere ArrayList
zurück, aber im vorherigen Beispiel geben wir eine MutableList
zurück. Wie ist das möglich?
Im Einführungsabschnitt haben wir erwähnt, dass die MutableList
eine List
ist, weil sie von der List
-Schnittstelle erbt; Da ArrayList
die List
-Schnittstelle implementiert, können wir MutableList
mit der ArrayList
zurückgeben.
Sobald wir Zugriff auf die veränderliche Liste haben, können wir die Methode isEmpty()
aufrufen, um zu überprüfen, ob die Methode leer ist. Führen Sie den obigen Code aus und beobachten Sie, dass die Ausgaben wie unten gezeigt aussehen.
true
false
Verwenden Sie den Konstruktor einer Datenstruktur in Kotlin
Kommentieren Sie das vorherige Beispiel und fügen Sie den folgenden Code in die Datei Main.kt
ein.
import java.util.LinkedList
val mutableEmptyList: MutableList<String> = LinkedList();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
Die Klasse LinkedList
implementiert die Schnittstelle List
, die uns hilft, eine MutableList
vom Typ LinkedList
zurückzugeben.
Der Konstruktor LinkedList()
gibt eine leere Liste zurück und gilt für die Konstruktoren anderer Datenstrukturen, die die Schnittstelle List
implementieren.
Führen Sie das obige Beispiel aus und beachten Sie, dass die Ausgabe genauso gedruckt wird wie die anderen Beispiele. Die Ausgabe ist unten gezeigt.
true
false
Verwendung der impliziten Deklaration in Kotlin
Kommentieren Sie das vorherige Beispiel und fügen Sie den folgenden Code in die Datei Main.kt
ein.
val mutableEmptyList = ArrayList<String>();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
Wie Sie in den vorherigen Beispielen bemerkt haben, haben wir direkt den gewünschten Rückgabetyp angegeben, nämlich die MutableList
. Im Einführungsabschnitt haben wir erwähnt, dass jede Listenimplementierung als änderbar angenommen wird, wenn wir nicht angeben, ob wir eine schreibgeschützte Liste wollen.
Dieses Beispiel zeigt, wie die MutableList
implizit zurückgegeben wird, indem eine List
-Implementierung ohne Angabe des Rückgabetyps definiert wird.
Führen Sie den obigen Code aus und beachten Sie, dass die von der Klasse AbstractCollection
geerbte isEmpty()
-Methode true
zurückgibt, bevor ein Element hinzugefügt wird, und false
, nachdem ein Element hinzugefügt wurde. Die Ausgabe ist unten gezeigt.
true
false
Fazit
In diesem Tutorial haben wir gelernt, wie man eine leere MutableList
mit verschiedenen Ansätzen erstellt, darunter: mit der mutableListOf()
-Methode, mit der arrayListOf()
-Methode, mit dem Konstruktor einer Datenstruktur und mit der Ansatz der impliziten Deklaration.
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub