List.insert în Dart

List: liste Dart 2.0

Inserează un element (insert) sau mai multe (insertAll) la o poziție, mutând restul la dreapta.

Sintaxă
void insert(int index, E element)
void insertAll(int index, Iterable<E> iterable)

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 length crezând că lista se umple cu goluri: apare RangeError.

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.