Dart - 如何对Map的键进行排序

Rog*_*han 17 dart

我在Dart中对Map的键进行排序时有疑问.

Map<String, Object> map = new Map();
Run Code Online (Sandbox Code Playgroud)

如何在地图中对键进行排序?或者对Iterable map.keys进行排序.

Ily*_*mov 22

在Dart它被称为SplayTreeMap:

import "dart:collection";
main() {
  var st = new SplayTreeMap<String, Object>();
  st["yyy"]={"should be":"3rd"};
  st["zzz"]={"should be":"last"};
  st["aaa"]={"should be":"first"};
  st["bbb"]={"should be":"2nd"};
  for (var key in st.keys) {
    print("$key : ${st[key]}");
  }
}
//Output:
//aaa : first
//bbb : 2nd
//yyy : 3rd
//zzz : last
Run Code Online (Sandbox Code Playgroud)


Gan*_*ede 19

如果您想要List对地图的键进行排序:

var sortedKeys = map.keys.toList()..sort();
Run Code Online (Sandbox Code Playgroud)

您可以选择将自定义排序功能传递给List.sort方法.

最后,我可以建议使用Map<String, dynamic>而不是Map<String, Object>吗?

  • 当心一排`map.keys.toList()。sort()`。为了保持一致,应该使用级联样式,如在map.keys.toList().. sort()中。 (2认同)

Ban*_*ter 13

final sorted = SplayTreeMap<String,dynamic>.from(map, (a, b) => a.compareTo(b));
Run Code Online (Sandbox Code Playgroud)

正如所见

如何在 dart/Flutter 中使用 Firebase 快照字典上的 SplayTreeMap?


Jer*_*rin 6

我知道我的回答为时已晚,但看看我发现了什么..可能会帮助某人

这个sortedmap包有助于以排序的方式维护对象的Map。


归档时间:

查看次数:

7278 次

最近记录:

6 年,3 月 前