List.remove în Dart

List: liste Dart 2.0

Șterge un element după valoare (remove), după poziție (removeAt) sau ultimul element (removeLast).

Sintaxă
bool remove(Object? value)
E removeAt(int index)
E removeLast()

Ce face List.remove

remove(x) șterge prima apariție a valorii x și returnează true dacă a găsit-o. Celelalte apariții rămân.

removeAt(i) șterge elementul de pe poziția i și îl returnează; elementele de după se mută la stânga. removeLast() șterge și returnează ultimul element, ceea ce face din listă o stivă simplă (cu add). Pe listă goală, removeLast aruncă RangeError.

Parametri

Parametru Descriere
value Pentru remove: valoarea căutată (comparată cu ==).
index Pentru removeAt: poziția elementului șters.

Ce returnează

remove: bool. removeAt și removeLast: elementul șters.

Exemple

Exemplul 1: Ștergere după valoare și după poziție

void main() {
  final lista = ['mere', 'pere', 'mere', 'prune'];
  print(lista.remove('mere'));
  print(lista);
  print(lista.remove('caise'));

  final scos = lista.removeAt(1);
  print('scos: $scos, rămas: $lista');
}

Rezultat

true
[pere, mere, prune]
false
scos: mere, rămas: [pere, prune]

Exemplul 2: Stivă cu add și removeLast

void main() {
  final istoric = <String>[];
  istoric.add('acasă');
  istoric.add('produse');
  istoric.add('coș');
  while (istoric.isNotEmpty) {
    print('înapoi de la: ${istoric.removeLast()}');
  }
}

Rezultat

înapoi de la: coș
înapoi de la: produse
înapoi de la: acasă

Greșeli frecvente

  • Te aștepți ca remove să șteargă toate aparițiile. Șterge doar prima; pentru toate folosește removeWhere((x) => x == valoare).
  • Pe o List<int>, confunzi remove(2) (șterge valoarea 2) cu removeAt(2) (șterge poziția 2).

Comenzi înrudite

  • List.removeWhere: removeWhere șterge toate elementele care trec testul; retainWhere le păstrează doar pe ele.
  • List.removeRange: removeRange șterge elementele dintre două poziții; clear golește toată lista.
  • List.add: add adaugă un element la sfârșitul listei; addAll adaugă toate elementele unei alte colecții.
  • Queue.addFirst: addFirst pune un element la începutul cozii, addLast (la fel ca add) îl pune la sfârșit.