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
在本例中,我使用了的集合。收集文字的这种语法是在Dart
2.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];