0Pricing
Kotlin Academy · Lektion

Elementzugriff: get, first, last, getOrNull

Rufen Sie Elemente mithilfe indexbasierter und funktionaler Zugriffsfunktionen ab.

Elementzugriff: get, first, last, getOrNull ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Viele Möglichkeiten zum Abrufen

Kotlin bietet mehrere Möglichkeiten, Elemente zu lesen: nach Index ([], get), nach Position (first, last) und sicher (getOrNull, firstOrNull).

Zugriff per Index mit []

Die Klammersyntax ist eine Kurzform für get(index). Bei einem ungültigen Index wird IndexOutOfBoundsException ausgelöst.

fun main() {
    val items = listOf("a", "b", "c")
    println(items[0]) // a
    println(items[2]) // c
}

get und [] im Vergleich

list.get(i) ist identisch mit list[i] – andere Syntax, dasselbe Verhalten.

fun main() {
    val items = listOf(10, 20, 30)
    println(items.get(1)) // 20
    println(items[1])     // 20
}

Sicherer Zugriff mit getOrNull

getOrNull(i) gibt null zurück, anstatt eine Ausnahme auszulösen, wenn der Index außerhalb des gültigen Bereichs liegt.

fun main() {
    val items = listOf("x", "y")
    println(items.getOrNull(0)) // x
    println(items.getOrNull(5)) // null
}

getOrElse mit einem Standardwert

getOrElse(i) { default } berechnet einen Standardwert erst bei Bedarf, wenn der Index ungültig ist.

fun main() {
    val items = listOf(1, 2, 3)
    println(items.getOrElse(10) { -1 }) // -1
    println(items.getOrElse(1) { -1 })  // 2
}

first und last

first() und last() geben die entsprechenden Elemente zurück; bei einer leeren Liste lösen beide eine Ausnahme aus.

fun main() {
    val nums = listOf(5, 8, 12)
    println(nums.first()) // 5
    println(nums.last())  // 12
}

firstOrNull / lastOrNull

Die Varianten ...OrNull geben bei leeren Listen null zurück, anstatt eine Ausnahme auszulösen – das ist deutlich sicherer.

fun main() {
    val empty: List<Int> = emptyList()
    println(empty.firstOrNull()) // null
    println(empty.lastOrNull())  // null
}

Varianten mit Prädikat

first { predicate } gibt das erste passende Element zurück; find { predicate } ist der nullable Alias für firstOrNull { predicate }.

fun main() {
    val nums = listOf(3, 7, 8, 11)
    println(nums.first { it > 5 })       // 7
    println(nums.firstOrNull { it > 100 }) // null
    println(nums.find { it > 100 })       // null (same)
}

Auf Map-Werte zugreifen

Maps verwenden dieselbe []-Syntax, geben damit aber einen nullable Wert zurück. getValue(key) löst eine Ausnahme aus, wenn der Schlüssel fehlt; getOrDefault stellt einen Ersatzwert bereit.

fun main() {
    val ages = mapOf("Alice" to 30, "Bob" to 25)
    println(ages["Alice"])             // 30
    println(ages["Charlie"])           // null
    println(ages.getOrDefault("Z", 0)) // 0
}

elementAt und elementAtOrNull

Mengen und andere Sammlungen ohne Indexzugriff bieten ebenfalls elementAt(i) und die entsprechende OrNull-Variante.

fun main() {
    val s = setOf("a", "b", "c")
    println(s.elementAt(1))          // b
    println(s.elementAtOrNull(10))   // null
}

Den passenden Zugriff wählen

Bevorzugen Sie die sicheren Varianten (getOrNull, firstOrNull, getOrDefault), es sei denn, Sie können beweisen, dass der Index gültig ist. Ausnahmen sind aufwendig und werden leicht nicht behandelt.

fun headOf(list: List<Int>): Int? = list.firstOrNull()
fun main() {
    println(headOf(listOf(1, 2, 3))) // 1
    println(headOf(emptyList()))      // null
}

Kurze Überprüfung

Welcher Zugriff gibt null zurück, anstatt eine Ausnahme auszulösen, wenn der Index außerhalb des gültigen Bereichs liegt?

Zusammenfassung

Verwenden Sie []/get für den direkten Zugriff; bei einem Fehler wird eine Ausnahme ausgelöst. Bevorzugen Sie getOrNull, firstOrNull, lastOrNull, getOrDefault und getOrElse, wenn die Grenzen ungültig sein können. Maps verwenden [] für nullable Werte und getValue, wenn eine Ausnahme ausgelöst werden soll.

Häufig gestellte Fragen

Ist die Lektion „Elementzugriff: get, first, last, getOrNull“ kostenlos?

Ja — der vollständige Text von „Elementzugriff: get, first, last, getOrNull“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Elementzugriff: get, first, last, getOrNull“?

Rufen Sie Elemente mithilfe indexbasierter und funktionaler Zugriffsfunktionen ab. Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Elementzugriff: get, first, last, getOrNull“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. listOf, setOf, mapOf: Read-only-Collections
  2. mutableListOf, mutableMapOf: Builder für veränderliche Collections
  3. Elementzugriff: get, first, last, getOrNull
  4. Collections mit der Standardbibliothek durchlaufen und umwandeln
← Zurück zu Kotlin Academy