Дарт - Как сортировать ключи карты

У меня есть вопрос при сортировке ключа карты в Dart.

Map<String, Object> map = new Map();

Как я могу сортировать ключи на карте? или Сортировка Iterable map.keys.

Ответ 1

Если вы хотите отсортировать List ключей карты:

var sortedKeys = map.keys.toList()..sort();

Вы можете передать специальную функцию сортировки методу List.sort.

Наконец, могу ли я предложить использовать Map<String, dynamic> вместо Map<String, Object>?

Ответ 2

В 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

Ответ 3

Используйте TreeMap. Это должно решить вашу проблему.

        Map<String, String> unsortMap = new HashMap<String, String>();
        unsortMap.put("2", "B");
        unsortMap.put("1", "A");
        unsortMap.put("4", "D");
        unsortMap.put("3", "B");

        Map<String, String> treeMap = new TreeMap<String, String>(unsortMap);

Надеюсь, что это поможет.