Dart 如何对内部和外部地图进行排序?
我在下面的地图上有一张地图:Dart 如何对内部和外部地图进行排序?,dart,Dart,我在下面的地图上有一张地图: Map <String,Map<String,dynamic>> _allData = { "jewishStudies": {'jewish': ['b2019','a2019']}, "socialScience": {'social1': ['a2017','c2014','b2020'], 'social2': ['a2012','c2015','b2011'],
Map <String,Map<String,dynamic>> _allData = {
"jewishStudies": {'jewish': ['b2019','a2019']},
"socialScience": {'social1': ['a2017','c2014','b2020'],
'social2': ['a2012','c2015','b2011'],
'social3': ['a2010','c2008','b2005']},
"humanities": {'human': ['z2017','c2014','k2020']},
"exactSciences": {'exact': ['d2017','c2014','c2020']},
"engineering": {'eng': ['a2017']},
"lifeScience": {'life1': ['y2017','c2014','d2020'],
'life2': ['t2017','t2014','s2020'],
'life3': ['e2017','c2014','b2020']},
"interStudies": {'inter1':['a2017','c2014','b2020'],
'inter2':['a2017','c2014','b2020']},
"general": {'gen': ['g2017','w2014','b2020']},
};
Map\u allData={
“犹太研究”:{'jewish':['b2019','a2019']},
“社会科学”:{'social1':['a2017'、'c2014'、'b2020'],
‘社会2’:[a2012’、‘c2015’、‘b2011’],
“social3”:[a2010'、'c2008'、'b2005'],
“人文学科”:{‘人文’:['z2017'、'c2014'、'k2020']},
“exactSciences”:{'exactSciences':['d2017','c2014','c2020']},
“工程”:{'eng':['a2017']},
“生命科学”:{'life1':['y2017'、'c2014'、'd2020'],
‘生命2’:[‘t2017’、‘t2014’、‘s2020’],
'生命3':['e2017','c2014','b2020']},
“研究间”:{'inter1':['a2017'、'c2014'、'b2020'],
‘inter2’:[a2017’、‘c2014’、‘b2020’],
“概述”:{'gen':['g2017'、'w2014'、'b2020']},
};
我想做:
您可以使用
SplayTreeMap
按排序顺序迭代键
例如(归功于伊利亚·哈拉莫夫):
导入“省道:集合”;
main(){
SplayTreeMap st=新的SplayTreeMap();
st[“yyy”]={“应该是”:“第三”};
st[“zzz”]={“应该是”:“最后”};
st[“aaa”]={“应该是”:“第一”};
st[“bbb”]={“应该是”:“第二”};
for(st.keys中的字符串键){
打印(“$key:${st[key]}”);
}
}
//输出:
//aaa:第一
//bbb:2
//yyy:3
//zzz:最后一次
对地图进行排序是什么意思?您不能按映射值在内存中的存储顺序或从索引中访问它,只能使用其关联的键检索值。我想更改两个映射中条目的顺序,使键按字母顺序排列,列表中的项目也按字母顺序排列。
import "dart:collection";
main() {
SplayTreeMap st = new SplayTreeMap<String, dynamic>();
st["yyy"]={"should be":"3rd"};
st["zzz"]={"should be":"last"};
st["aaa"]={"should be":"first"};
st["bbb"]={"should be":"2nd"};
for (String key in st.keys) {
print("$key : ${st[key]}");
}
}
//Output:
//aaa : first
//bbb : 2nd
//yyy : 3rd
//zzz : last