Ce face List.takeLast
takeLast(n) întoarce ultimele n elemente, în ordinea lor din listă (nu inversate). dropLast(n) întoarce lista fără ultimele n elemente.
La fel ca take și drop, nu dau eroare dacă n este mai mare decât lista. Există și variantele cu condiție: takeLastWhile și dropLastWhile, care lucrează de la final spre început.
Parametri
| Parametru | Descriere |
|---|---|
n |
Câte elemente de la final se iau sau se elimină. Nu poate fi negativ. |
Ce returnează
O List<T> nouă.
Exemple
Exemplul 1: Ultimele trei comenzi
Comenzile sunt în ordinea plasării. takeLast(3) le dă pe cele mai noi, în aceeași ordine.
fun main() {
val comenzi = listOf("#101", "#102", "#103", "#104", "#105")
println("Recente: ${comenzi.takeLast(3)}")
println("Mai vechi: ${comenzi.dropLast(3)}")
}
Rezultat
Recente: [#103, #104, #105]
Mai vechi: [#101, #102]
Exemplul 2: Fără semnele de punctuație de la final
dropLastWhile elimină caracterele de la final cât timp nu sunt litere.
fun main() {
val litere = "Bună ziua!!!".toList()
val curat = litere.dropLastWhile { !it.isLetter() }.joinToString("")
println(curat)
}
Rezultat
Bună ziua
Greșeli frecvente
- Aștepți ca
takeLastsă inverseze ordinea: elementele rămân în ordinea din listă. Pentru ordine inversă adaugăreversed().
Comenzi înrudite
Iterable.take: take(n) întoarce primele n elemente, iar drop(n) întoarce tot ce rămâne după ce sari peste primele n.Iterable.takeWhile: takeWhile ia elementele de la început cât timp condiția e adevărată; dropWhile le sare și întoarce restul.Iterable.reversed: Întoarce o listă nouă cu elementele în ordine inversă: ultimul devine primul.Iterable.first: first/last întorc primul sau ultimul element (sau primul care îndeplinește o condiție); variantele OrNull dau null în loc de excepție.