Dart中的List.shuffle()?

Pet*_*ter 12 sorting random list set dart

我正在寻找网络上的每个地方(飞镖网站,stackoverflow,论坛等),我找不到我的答案.

所以有我的问题:我需要编写一个函数,打印随机排序的列表,女巫作为参数提供.:在飞镖中也是如此.

我尝试使用地图,使用集合,使用列表...我尝试使用assert的方法,使用排序,我看看随机方法使用数学上的飞镖解决方案......没有什么可以做我想做的事情.

有人可以帮我弄这个吗?

这里有一些草案:

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);
Run Code Online (Sandbox Code Playgroud)

Fox*_*x32 40

List类中有一个shuffle方法.您可以不带参数调用它或提供随机数生成器实例:

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

list.shuffle();

print('$list');
Run Code Online (Sandbox Code Playgroud)

  • `items..shuffle();` 对我有用。它返回一个对象列表 (10认同)
  • 这应该是今天的答案! (8认同)
  • 很遗憾它没有返回流等的列表。 (2认同)

Kai*_*ren 10

这是一个基本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));
}
Run Code Online (Sandbox Code Playgroud)

  • 当然,您现在应该使用 List.shuffle,而不是这种手动代码。 (3认同)

小智 7

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

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

List mixed = cities..shuffle();

print(mixed);

// [London, Paris, Ankara]
Run Code Online (Sandbox Code Playgroud)