Дарт - Как сортировать ключи карты У меня есть вопрос при сортировке ключа карты в 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); Надеюсь, что это поможет.
Ответ 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); Надеюсь, что это поможет.