List.shuffle în Dart

List: liste Dart 2.0

Amestecă elementele listei pe loc, în ordine aleatorie.

Sintaxă
void shuffle([Random? random])

Ce face List.shuffle

shuffle pune elementele într-o ordine aleatorie, modificând lista. Fără argument, ordinea diferă la fiecare rulare.

Dacă îi dai un generator cu sămânță fixă, Random(42) din dart:math, amestecarea este aceeași la fiecare rulare. Este util la teste sau când vrei rezultate reproductibile.

Parametri

Parametru Descriere
random Opțional: generatorul de numere aleatorii folosit.

Ce returnează

Nimic (void).

Exemple

Exemplul 1: Amestecare reproductibilă

Cu aceeași sămânță (42) obții aceeași ordine la fiecare rulare.

import 'dart:math';

void main() {
  final carti = ['as', 'rege', 'damă', 'valet', '10'];
  carti.shuffle(Random(42));
  print(carti);

  final altele = ['as', 'rege', 'damă', 'valet', '10'];
  altele.shuffle(Random(42));
  print('aceeași ordine: ${carti.join() == altele.join()}');
}

Rezultat

[valet, rege, as, 10, damă]
aceeași ordine: true

Exemplul 2: Ordinea de prezentare a proiectelor

import 'dart:math';

void main() {
  final elevi = ['Ana', 'Mihai', 'Ioana', 'Vlad', 'Elena'];
  final ordine = [...elevi]..shuffle(Random(7));
  for (final (i, nume) in ordine.indexed) {
    print('${i + 1}. $nume');
  }
  print('lista inițială rămâne: $elevi');
}

Rezultat

1. Elena
2. Vlad
3. Ioana
4. Mihai
5. Ana
lista inițială rămâne: [Ana, Mihai, Ioana, Vlad, Elena]

Greșeli frecvente

  • Amesteci lista originală când ai nevoie de ea și în ordinea inițială. Amestecă o copie: [...lista]..shuffle().

Comenzi înrudite

  • List.sort: Sortează lista pe loc, crescător sau după o funcție de comparare.
  • List.reversed: Parcurge lista de la ultimul element la primul, fără să o modifice.