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