Queue.addFirst în Dart

addFirst pune un element la începutul cozii, addLast (la fel ca add) îl pune la sfârșit.

Sintaxă
void addFirst(E value)
void addLast(E value)

Ce face Queue.addFirst

addFirst(x) adaugă elementul în fața tuturor celorlalte; addLast(x) îl adaugă după ultimul. add(x) face același lucru ca addLast.

Ambele sunt rapide indiferent de mărimea cozii. Combinate cu removeFirst și removeLast, transformă coada într-o stivă sau într-o coadă cu priorități simple.

Parametri

Parametru Descriere
value Elementul adăugat.

Ce returnează

Nimic (void).

Exemple

Exemplul 1: Clientul cu prioritate trece în față

import 'dart:collection';

void main() {
  final coada = Queue<String>()
    ..addLast('Ana')
    ..addLast('Mihai');
  coada.addFirst('doamna Popescu (prioritate)');
  coada.addLast('Ioana');
  print(coada.toList());
}

Rezultat

[doamna Popescu (prioritate), Ana, Mihai, Ioana]

Exemplul 2: Istoricul paginilor vizitate

import 'dart:collection';

void main() {
  final istoric = Queue<String>();
  for (final pagina in ['/acasa', '/invata', '/invata/dart', '/contact']) {
    istoric.addFirst(pagina);
  }
  print('Cea mai recentă: ${istoric.first}');
  print('Ordine inversă: ${istoric.join(' <- ')}');
}

Rezultat

Cea mai recentă: /contact
Ordine inversă: /contact <- /invata/dart <- /invata <- /acasa

Greșeli frecvente

  • Folosești list.insert(0, x) de multe ori pe o listă mare. Fiecare inserare mută toate elementele; o Queue cu addFirst este mult mai rapidă.

Comenzi înrudite

  • Queue: Coadă la care adaugi și scoți rapid elemente la ambele capete (început și sfârșit).
  • Queue.removeFirst: removeFirst scoate și returnează primul element al cozii; removeLast scoate și returnează ultimul element.
  • List.insert: Inserează un element (insert) sau mai multe (insertAll) la o poziție, mutând restul la dreapta.