我对在 Dart 中排序 Map 的键有疑问。
Map<String, Object> map = new Map();
如何对地图中的键进行排序?或对 Iterable map.keys 进行排序。
我对在 Dart 中排序 Map 的键有疑问。
Map<String, Object> map = new Map();
如何对地图中的键进行排序?或对 Iterable map.keys 进行排序。
在 Dart 中,它被称为SplayTreeMap
:
import "dart:collection";
main() {
final SplayTreeMap<String, Map<String,String>> st =
SplayTreeMap<String, Map<String,String>>();
st["yyy"] = {"should be" : "3rd"};
st["zzz"] = {"should be" : "last"};
st["aaa"] = {"should be" : "first"};
st["bbb"] = {"should be" : "2nd"};
for (final String key in st.keys) {
print("$key : ${st[key]}");
}
}
// Output:
// aaa : first
// bbb : 2nd
// yyy : 3rd
// zzz : last
如果您想要List
对地图的键进行排序:
var sortedKeys = map.keys.toList()..sort();
您可以选择将自定义排序函数传递给该List.sort
方法。
最后,我可以建议使用Map<String, dynamic>
而不是Map<String, Object>
吗?
我知道我的回答为时已晚,但请查看我发现的内容.. 可能会对某人有所帮助
这个sortedmap包有助于以排序的方式维护对象的 Map。
final sorted = SplayTreeMap<String,dynamic>.from(map, (a, b) => a.compareTo(b));
如所见