Ce face MutableList.remove
remove(x) caută valoarea x și șterge prima ei apariție. Întoarce true dacă a găsit-o și a șters-o, false dacă nu exista (fără eroare).
removeAt(i) șterge elementul de pe poziția i și îl întoarce, ca să-l poți folosi. Elementele de după se mută cu o poziție spre stânga. O poziție inexistentă aruncă IndexOutOfBoundsException.
Atenție la MutableList<Int>: remove(3) șterge valoarea 3, nu elementul de pe poziția 3. Pentru poziție folosește mereu removeAt.
Parametri
| Parametru | Descriere |
|---|---|
element |
La remove: valoarea de șters. |
index |
La removeAt: poziția elementului de șters. |
Ce returnează
remove: true dacă s-a șters ceva. removeAt: elementul șters.
Exemple
Exemplul 1: Ștergere după valoare
„lapte” apare de două ori; remove îl șterge doar pe primul. Un produs care nu există dă false.
fun main() {
val lista = mutableListOf("pâine", "lapte", "ouă", "lapte")
println(lista.remove("lapte"))
println(lista)
println(lista.remove("cafea"))
}
Rezultat
true
[pâine, ouă, lapte]
false
Exemplul 2: removeAt întoarce elementul
Scoatem primul client din coadă și îl servim. Restul se mută în față.
fun main() {
val coada = mutableListOf("Ana", "Ion", "Maria")
val servit = coada.removeAt(0)
println("Servim pe $servit")
println("Rămân: $coada")
}
Rezultat
Servim pe Ana
Rămân: [Ion, Maria]
Exemplul 3: Capcana cu liste de Int
remove(10) caută valoarea 10. removeAt(1) șterge elementul de pe poziția 1 (valoarea 7).
fun main() {
val note = mutableListOf(9, 7, 10, 8)
note.remove(10)
println(note)
note.removeAt(1)
println(note)
}
Rezultat
[9, 7, 8]
[9, 8]
Greșeli frecvente
- Vrei să ștergi poziția 2 dintr-o listă de numere și scrii
remove(2): se șterge valoarea 2. FoloseșteremoveAt(2). - Ștergi elemente într-o buclă
for (x in lista):ConcurrentModificationException. FoloseșteremoveAll { ... }sauremoveIf.
Comenzi înrudite
MutableList.add: Adaugă un element la finalul listei sau la o poziție dată; addAll adaugă mai multe elemente deodată.MutableCollection.removeAll: Șterge pe loc toate elementele care îndeplinesc o condiție (removeAll, removeIf) sau păstrează doar pe cele care o îndeplinesc (retainAll).MutableList.removeFirst: Scoate și întoarce primul (removeFirst) sau ultimul (removeLast) element al listei.Iterable.plus: Operatorii + și – pe colecții: creează o listă nouă cu elemente adăugate sau scoase, fără să schimbe originalul.