2013-08-15 11 views

Odpowiedz

5

Jeśli chcesz klasyfikowane List kluczy w MAP:

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

Opcjonalnie można przekazać funkcję sortowania niestandardowego sposobu List.sort.

Wreszcie, czy mogę zaproponować użycie Map<String, dynamic> zamiast Map<String, Object>?

+0

Dzięki Twojej sugestii! –

+1

Uważaj na jednolinijkowe 'map.keys.toList(). Sort()'. Aby zachować tę samą linię, należy użyć stylu kaskadowego, jak w 'map.keys.toList() .. sort()'. – nunobaba

0

Użyj TreeMap. To powinno rozwiązać twój problem.

 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); 

Mam nadzieję, że to pomoże.

+0

Nie ma put a nie TreeMap? – Gero

8

W Dart Nazywa 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]['should be']}"); 
    } 
} 
//Output: 
//aaa : first 
//bbb : 2nd 
//yyy : 3rd 
//zzz : last