在 dart 中使用List.shuffle()?

ecbunoof  于 2022-12-30  发布在  其他
关注(0)|答案(3)|浏览(140)

我在网上到处找(dart网站,stackoverflow,论坛等),但我找不到我的答案。
这就是我的问题:我需要写一个函数,打印一个列表的随机排序,并作为参数提供。:在省道也一样。
我试过Map,集合,列表...我试过Assert,排序的方法,我在dart库上用数学看随机方法...没有什么能做我想做的。
有人能帮我一下吗?
以下是一些草稿:

var element03 = query('#exercice03');
  var uneliste03 = {'01':'Jean', '02':'Maximilien', '03':'Brigitte', '04':'Sonia', '05':'Jean-Pierre', '06':'Sandra'};
  var alluneliste03 = new Map.from(uneliste03);
  assert(uneliste03 != alluneliste03);
  print(alluneliste03);

  var ingredients = new Set();
  ingredients.addAll(['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']);
  var alluneliste03 = new Map.from(ingredients);
  assert(ingredients != alluneliste03);
  //assert(ingredients.length == 4);

  print(ingredients);

  var fruits = <String>['bananas', 'apples', 'oranges'];
  fruits.sort();
  print(fruits);
w1jd8yoj

w1jd8yoj1#

List类中有一个shuffle方法。该方法在适当的位置对列表进行shuffle。您可以不使用参数调用它,也可以提供一个随机数生成器示例:

var list = ['a', 'b', 'c', 'd'];

list.shuffle();

print('$list');

collection包附带了一个shuffle函数/扩展,它也支持指定要混洗的子范围:

void shuffle (
  List list,
  [int start = 0,
  int end]
)
mlnl4t2r

mlnl4t2r2#

下面是一个基本的shuffle函数。注意,生成的shuffle在加密方面并不强大。它使用Dart的Random类,该类生成不适合加密使用的伪随机数据。

import 'dart:math';

List shuffle(List items) {
  var random = new Random();

  // Go through all elements.
  for (var i = items.length - 1; i > 0; i--) {

    // Pick a pseudorandom number according to the list length
    var n = random.nextInt(i + 1);

    var temp = items[i];
    items[i] = items[n];
    items[n] = temp;
  }

  return items;
}

main() {
  var items = ['foo', 'bar', 'baz', 'qux'];

  print(shuffle(items));
}
vecaoik1

vecaoik13#

您可以像Vinoth Vino所说的那样使用带2个点的shuffle()。

List cities = ["Ankara","London","Paris"];

List mixed = cities..shuffle();

print(mixed);

// [London, Paris, Ankara]

相关问题