在Dart中使用List.shuffle()?

在Dart中使用List.shuffle()?,list,sorting,random,set,dart,List,Sorting,Random,Set,Dart,我在网上到处寻找(dart网站、stackoverflow、论坛等),但我找不到我的答案 所以我的问题是:我需要编写一个函数,打印一个随机排序的列表,它作为一个参数提供在省道中也是如此 我尝试使用地图、集合和列表。。。我用assert尝试这个方法,用sort,我在dart库上用数学看随机方法。。。没有什么能做我想做的事 有人能帮我吗 以下是一些草稿: var element03=query('#exercie03'); 变量uneliste03={'01':'Jean','02':'Maximi

我在网上到处寻找(dart网站、stackoverflow、论坛等),但我找不到我的答案

所以我的问题是:我需要编写一个函数,打印一个随机排序的列表,它作为一个参数提供在省道中也是如此

我尝试使用地图、集合和列表。。。我用assert尝试这个方法,用sort,我在dart库上用数学看随机方法。。。没有什么能做我想做的事

有人能帮我吗

以下是一些草稿:

var element03=query('#exercie03');
变量uneliste03={'01':'Jean','02':'Maximilien','03':'Brigitte','04':'Sonia','05':'Jean-Pierre','06':'Sandra'};
var alluneliste03=新映射自(uneliste03);
断言(unelist03!=allunelist03);
印刷品(AlluneList03);
var Components=新集合();
配料。添加所有(['Jean','Maximilien','Brigitte','Sonia','Jean Pierre','Sandra']);
var ALLUNELIST03=新地图来源(配料);
断言(成分!=AlluneList03);
//断言(components.length==4);
印刷品(配料);
var水果=[‘香蕉’、‘苹果’、‘橙子’];
水果。分类();
印刷品(水果);

这里有一个基本的
洗牌功能。请注意,由此产生的洗牌在加密方面不是很强。它使用Dart的
Random
类,该类生成不适合加密使用的伪随机数据

import'dart:math';
列表洗牌(列表项){
var random=新的random();
//检查所有元素。
对于(var i=items.length-1;i>0;i--){
//根据列表长度选择一个伪随机数
var n=随机的nextInt(i+1);
var temp=项目[i];
项目[i]=项目[n];
项目[n]=温度;
}
退货项目;
}
main(){
变量项=['foo','bar','baz','qux'];
打印(洗牌(项目));
}
列表类中有一个方法。这些方法将列表洗牌到位。您可以不带参数调用它,也可以提供随机数生成器实例:

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

list.shuffle();

print('$list');

该软件包附带一个函数/扩展,还支持指定要洗牌的子范围:

void shuffle(
名单,
[int start=0,
int end]
)

什么是“随机排序”?你想把这些元素按随机顺序排列吗?没错,我想把这些元素按随机顺序排列。在这种情况下,看一看。我没有时间想出一个完整的解决方案,但希望这能有所帮助。另外,请检查一下这是请求此功能的bug,请将其启动以投票支持:List类中实现了一个List.shuffle方法自几个月以来谢谢,它工作得非常好!我将你的评论作为答案发布!您的代码与当前的代码之间存在差异。需要吗?(
random.nextInt(items.length)
vs。有关详细信息,请参阅。当然,您现在应该使用List.shuffle,而不是这种手工编写的代码。这应该是当今的答案!遗憾的是,它没有返回流等的列表。@LechMigdal我更新了我的原始答案,因此它现在是最新的。
items..shuffle()为我工作。它返回一个对象列表