開発しているアプリでListの要素をランダムシャッフルして格納し直す必要が出てきたので
ランダムにシャッフル出来ないのかを調べてみました。
List _shuffle(List items) {
var random = new Random();
for (var i = items.length - 1; i > 0; i--) {
var n = random.nextInt(i + 1);
var temp = items[i];
items[i] = items[n];
items[n] = temp;
}
return items;
}
これでListに入っている要素をランダムに並び替えることができる。
final list = List<int>.generate(25, (i) => i + 1);
print("list: $list" );
final randomList = _shuffle(list);
print("randomList: $randomList" );
# 結果
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
# [12, 3, 18, 8, 23, 20, 7, 10, 9, 1, 19, 5, 6, 4, 17, 24, 21, 11, 16, 13, 22, 15, 25, 14, 2]
参考にしたページを貼ります。