Ce face Queue
Queue, din dart:collection, este o colecție la care operațiile la capete sunt rapide: addFirst, addLast, removeFirst, removeLast. La o listă, removeAt(0) mută toate celelalte elemente; la o coadă, nu.
Este potrivită pentru „primul venit, primul servit” (FIFO): adaugi la sfârșit, scoți de la început. Nu are acces după poziție ([i]). Queue() creează de fapt un ListQueue.
Ce returnează
O coadă goală (sau, la Queue.of, cu elementele date).
Exemple
Exemplul 1: Coada de la ghișeu
import 'dart:collection';
void main() {
final ghiseu = Queue<String>();
ghiseu.add('Ana');
ghiseu.add('Mihai');
ghiseu.add('Ioana');
print('La coadă: $ghiseu');
while (ghiseu.isNotEmpty) {
final client = ghiseu.removeFirst();
print('Servit: $client, mai așteaptă ${ghiseu.length}');
}
}
Rezultat
La coadă: {Ana, Mihai, Ioana}
Servit: Ana, mai așteaptă 2
Servit: Mihai, mai așteaptă 1
Servit: Ioana, mai așteaptă 0
Exemplul 2: Ultimele 3 mesaje
Când coada depășește 3 elemente, cel mai vechi este scos de la început.
import 'dart:collection';
void main() {
final recente = Queue<String>();
for (final m in ['Bună!', 'Ce faci?', 'Vii la film?', 'La 8', 'Ok']) {
recente.addLast(m);
if (recente.length > 3) recente.removeFirst();
}
print(recente.toList());
}
Rezultat
[Vii la film?, La 8, Ok]
Greșeli frecvente
- Uiți
import 'dart:collection';.Queuenu este îndart:core. - Încerci
coada[0]. Foloseștefirstsaulast; pentru acces după poziție ai nevoie de o listă.
Comenzi înrudite
Queue.addFirst: addFirst pune un element la începutul cozii, addLast (la fel ca add) îl pune la sfârșit.Queue.removeFirst: removeFirst scoate și returnează primul element al cozii; removeLast scoate și returnează ultimul element.ListQueue: Implementarea obișnuită a lui Queue, cu elementele într-un tablou circular; permite și elementAt rapid.List: Lista din Dart: elemente în ordine, accesate după poziție, care poate crește sau scădea.