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.