Ce face List.insert
insert(i, x) pune x pe poziția i; elementul care era acolo și toate cele de după se mută cu o poziție. i poate fi de la 0 (început) până la length (sfârșit, ca add).
insertAll inserează toate elementele unui iterable, în ordine, începând de la poziția dată. Pe liste mari, inserarea la început este mai lentă decât add, pentru că mută toate elementele.
Parametri
| Parametru | Descriere |
|---|---|
index |
Poziția unde ajunge noul element (0 … length). |
element / iterable |
Ce se inserează. |
Ce returnează
Nimic (void).
Exemple
Exemplul 1: Inserare la început, la mijloc și la final
void main() {
final traseu = ['Iași', 'Cluj'];
traseu.insert(0, 'Suceava');
traseu.insert(2, 'Piatra Neamț');
traseu.insert(traseu.length, 'Oradea');
print(traseu);
traseu.insertAll(1, ['Botoșani', 'Târgu Frumos']);
print(traseu);
}
Rezultat
[Suceava, Iași, Piatra Neamț, Cluj, Oradea]
[Suceava, Botoșani, Târgu Frumos, Iași, Piatra Neamț, Cluj, Oradea]
Exemplul 2: Poziție invalidă
void main() {
final lista = [1, 2, 3];
try {
lista.insert(5, 99);
} on RangeError catch (e) {
print(e);
}
print(lista);
}
Rezultat
RangeError: Invalid value: Not in inclusive range 0..3: 5
[1, 2, 3]
Greșeli frecvente
- Inserezi pe o poziție mai mare decât
lengthcrezând că lista se umple cu goluri: apareRangeError.
Comenzi înrudite
List.add: add adaugă un element la sfârșitul listei; addAll adaugă toate elementele unei alte colecții.List.remove: Șterge un element după valoare (remove), după poziție (removeAt) sau ultimul element (removeLast).List.setRange: setRange suprascrie o porțiune a listei cu elemente din altă colecție; List.copyRange copiază dintr-o listă în alta.