Ce face MutableList.add
add(x) pune elementul la sfârșitul listei. add(i, x) îl inserează pe poziția i, iar elementele de după se mută cu o poziție spre dreapta. Poziția poate fi de la 0 până la size (adică inclusiv imediat după ultimul).
addAll(colectie) adaugă toate elementele altei colecții, în ordine. Funcționează pe orice MutableCollection: liste, mulțimi (MutableSet). Pe un set, elementele care există deja nu se mai adaugă.
add și addAll întorc true dacă colecția s-a schimbat. La liste este mereu true; la mulțimi este false când elementul exista. Operatorul += pe o colecție modificabilă face tot add / addAll.
Parametri
| Parametru | Descriere |
|---|---|
element |
Elementul de adăugat. |
index |
Opțional: poziția la care se inserează (0..size). |
elemente |
La addAll: colecția ale cărei elemente se adaugă. |
Ce returnează
add(element) și addAll: true dacă colecția s-a schimbat. add(index, element) nu întoarce nimic.
Exemple
Exemplul 1: La final și pe o poziție
Ion se adaugă la final; Bianca este inserată pe poziția 1, iar ceilalți se mută la dreapta.
fun main() {
val coada = mutableListOf("Ana", "Maria")
coada.add("Ion")
coada.add(1, "Bianca")
println(coada)
}
Rezultat
[Ana, Bianca, Maria, Ion]
Exemplul 2: addAll și +=
addAll adaugă o listă întreagă. += pe o listă modificabilă face același lucru, pe loc.
fun main() {
val cumparaturi = mutableListOf("pâine")
cumparaturi.addAll(listOf("lapte", "ouă"))
cumparaturi += "mere"
cumparaturi += listOf("unt", "miere")
println(cumparaturi)
println("Produse: ${cumparaturi.size}")
}
Rezultat
[pâine, lapte, ouă, mere, unt, miere]
Produse: 6
Exemplul 3: Valoarea întoarsă pe un set
Pe o mulțime, add spune dacă elementul era nou. addAll întoarce true dacă măcar un element a fost adăugat.
fun main() {
val inscrisi = mutableSetOf("Ana", "Ion")
println(inscrisi.add("Maria"))
println(inscrisi.add("Ana"))
println(inscrisi.addAll(listOf("Ion", "Ana")))
println(inscrisi)
}
Rezultat
true
false
false
[Ana, Ion, Maria]
Greșeli frecvente
- Apelezi
addpe o listă creată culistOf: nu compilează, pentru căListnu areadd. FoloseștemutableListOf. - Inserezi pe o poziție mai mare decât
size:IndexOutOfBoundsException. - Adaugi într-o listă în timp ce o parcurgi cu
for:ConcurrentModificationException. Strânge elementele noi într-o listă separată și adaugă-le după buclă.
Comenzi înrudite
MutableList.remove: remove șterge prima apariție a unei valori; removeAt șterge elementul de pe o poziție și îl întoarce.listOf: Creează o listă din elementele date: listOf pentru citire, mutableListOf și arrayListOf pentru o listă pe care o modifici.Iterable.plus: Operatorii + și – pe colecții: creează o listă nouă cu elemente adăugate sau scoase, fără să schimbe originalul.buildList: Construiește o listă, un map sau o mulțime pas cu pas într-un bloc, apoi o întoarce doar pentru citire.MutableCollection.removeAll: Șterge pe loc toate elementele care îndeplinesc o condiție (removeAll, removeIf) sau păstrează doar pe cele care o îndeplinesc (retainAll).