Algorithm 根据另一个列表的排序方式在Dart中对列表进行排序
我正在尝试参照另一个列表对一个列表进行排序。考虑这个例子,Algorithm 根据另一个列表的排序方式在Dart中对列表进行排序,algorithm,sorting,flutter,dart,Algorithm,Sorting,Flutter,Dart,我正在尝试参照另一个列表对一个列表进行排序。考虑这个例子, List<String> a = ["a", "b", "c"]; List<int> b = [2, 3, 1]; 我怎样才能达到这个结果 您可以通过创建一个Map来实现这一点,该Map保存字母到数字的映射,即2分配了a,3分配了b等 现在,您可以对列表进行正常排序,然后根据排序前存储的映射重新创建其他列表: main(){ 列出字母=[“a”、“b”、“c”]; 最终列表编号=[2,3,1]; 最终映射={
List<String> a = ["a", "b", "c"];
List<int> b = [2, 3, 1];
我怎样才能达到这个结果 您可以通过创建一个
Map
来实现这一点,该Map保存字母到数字的映射,即2
分配了a
,3
分配了b
等现在,您可以对列表进行正常排序,然后根据排序前存储的映射重新创建其他列表:
main(){
列出字母=[“a”、“b”、“c”];
最终列表编号=[2,3,1];
最终映射={
for(int i=0;i
在本例中,我使用了的集合。收集文字的这种语法是在Dart2.3
中引入的你可以很容易地改变这个方向,把数字映射到你的字母上。看起来是这样的:
main(){
最后名单字母=[“a”、“b”、“c”];
列表编号=[2,3,1];
最终地图映射={
for(int i=0;ib.compareTo(a));
数字=[
用于(字母中的字符串字母)映射[字母]
];
打印(字母);//[c、b、a]
打印(数字);//[1,3,2]
}
请注意,我在这里通过将
比较器也转到来对字母进行降序排序(默认情况下a.compareTo(b)
由List.sort
使用)。您能解释一下第二个数组是如何从第一个数组派生出来的吗?程序是什么(用你的话)
a = ["c", "a", "b"];
b = [1, 2, 3];