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
removesă șteargă toate aparițiile. Șterge doar prima; pentru toate foloseșteremoveWhere((x) => x == valoare). - Pe o
List<int>, confunziremove(2)(șterge valoarea 2) curemoveAt(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.