我有这张 map :
var temp= {
'A' : 3,
'B' : 1,
'C' : 2
};
如何对映射的值进行排序(降序).我知道,我可以使用temp.values.toList()..ort().
但我想在如下键的上下文中进行排序:
var temp= {
'B' : 1,
'C' : 2
'A' : 3,
};
我有这张 map :
var temp= {
'A' : 3,
'B' : 1,
'C' : 2
};
如何对映射的值进行排序(降序).我知道,我可以使用temp.values.toList()..ort().
但我想在如下键的上下文中进行排序:
var temp= {
'B' : 1,
'C' : 2
'A' : 3,
};
此示例使用自定义比较函数,该函数使sort()
按值对键进行排序.则键和值被插入到A LinkedHashMap
中,因为这种映射保证保持该顺序.
基本上与https://stackoverflow.com/a/29629447/217408相同,但根据您的用例进行定制.
import 'dart:collection';
void main() {
var temp= {
'A' : 3,
'B' : 1,
'C' : 2
};
var sortedKeys = temp.keys.toList(growable:false)
..sort((k1, k2) => temp[k1].compareTo(temp[k2]));
LinkedHashMap sortedMap = new LinkedHashMap
.fromIterable(sortedKeys, key: (k) => k, value: (k) => temp[k]);
print(sortedMap);
}
在DartPad号上试穿一下.