MutableList.remove în Kotlin

remove șterge prima apariție a unei valori; removeAt șterge elementul de pe o poziție și îl întoarce.

Sintaxă
fun remove(element: E): Boolean
fun removeAt(index: Int): E

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ște removeAt(2).
  • Ștergi elemente într-o buclă for (x in lista): ConcurrentModificationException. Folosește removeAll { ... } sau removeIf.

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.