導言
填鴨似的教育確實不行,我高中時學過集合,不知道有什么用,毫無興趣,等到我學了一門編程語言后,才發現集合真的很有用;可以去重,可以看你有我沒有的,可以看我有你沒有的;列表是我最喜歡的數據結構,我最喜歡把列表和元組結合起來用,比如[(張飛,劉備集團),(賈詡,曹操集團)]。映射,也就是Python里面的字典,也是我的最愛之一!讓學習變得有趣起來,就用三國混戰來舉例吧!
列表映射和集合出場
錯誤處理
//叫一個沒來的將領,會發生什么? try{String myGengeral = generalInfo['馬超']; }catch(e){print('出錯:$e'); }
出錯:type 'Null' is not a subtype of type 'String'
代碼
void main(){print('***************************列表**********************************');List<String> generals = ['趙云','呂布','典韋','夏侯惇','趙云'];String liubeiGroup = generals[0];print('劉備集團將領有:$liubeiGroup');//典韋要保護曹操的,換曹仁出場generals[2] = '曹仁';print('曹操換人后,出場混戰的將領有:$generals');//孫權說:“你們又不帶我玩?我要派甘寧來參加!”generals.add('甘寧');print('孫權加人后,出場混戰的將領有:$generals');//曹操說:“像呂布這種小人,不要讓他入場,必須德才兼備才有資格入場!”generals.remove('呂布');print('移除人品差的后,出場混戰的將領有:$generals');//組委會主席漢獻帝說:“讓我統計下參賽選手數量,聽我念名單依次入場!”print('漢獻帝宣布:總決賽出場混戰的將領總共有:${generals.length}位!');for (String general in generals){print('請入場:$general!');}print('***************************映射**********************************');Map<String,dynamic> generalInfo = {'名字':'趙云','公司':'劉備集團','性別':'男',};print('性別有點多余');generalInfo.remove('性別');print(generalInfo);print('第一個出場的是${generalInfo['名字']}');//自我介紹了說了名字么?print('${generalInfo.containsKey('名字')}');List<String> keys = generalInfo.keys.toList();print(keys);List<dynamic> values = generalInfo.values.toList();print(values);generalInfo.forEach((key,value){print('$key:$value');});print('***************************集合**********************************');Set<String> newGenerals = {'劉備','張飛','關羽','關羽'};print(newGenerals);//上面那個列表里面,趙云報了兩次名,這是不行的List<String> uniGenerals = generals.toSet().toList();print(uniGenerals);}