Dart 集合主要有List、Map、Set。集合相关的操作方法主要在drat:core Library中。本文主要描述这三个集合的基本用法。
List的创建是以[ ]包裹,用“,”号分割每个元素。创建时支持空List, 根据元素推断类型和显示的指定List类型,同时支持调用方法设置长度和默认值。
var emptyList=[];
var intList=[1,2,3];
var strList=<String>["A","B"];
var filledList=List<int>.filled(5,1)//固定长度为5,每个元素默认值是1
List的创建支持基于另一个List初始化,他们分别是 扩展操作符(…)和空感扩展操作符(…?)。
var oneList=[1,2,3,4];
var twoList[1,...oneList];//[1,1,2,3,4]
//如果oneList是null
var oneList=null;
var twoList=[1,...?oneList];//[1]
List的下标是从0开始,最后一个是length-1,赋值元素可以直接使用下标 ,也可以在创建List时把另一List添加到新创建的List中,同时也支持setAll方法。
var intList=[1,2,3];
intList[0]=3;//[3,2,3]
intList.setAll(1,[4,4,4]);//[3,4,4,4]
List 添加元素支持add和addAll,添加单个和多个元素。
var strList=["a","b","c"];
strList.add("d");//["a","b","c","d"]
strList.addAll({"e","f"});//["a","b","c","d","e","f"]
List 移除元素使用remove,removeLast,removeAt,removeRange,removeWhere。
var intList=[1,2,3,4];
intList.remove(1);//[2,3,4]
intList.removeAt(0);//[3,4]
intList.removeLast();//[3]
intList.clear();//[] 清除全部
var strList=["a","b","c","d","e","f"]
strList.removeRange(1,3);//["a","e","f"]
strList.removeWhere((item)=> item=="e");//["a","f"]
更多的关于list的相关方法 dart list
Map的创建主要以{}包裹,同时key:value,每个元素用“,”分隔。
var map1={"key1":"value1","key2":"value2"};
var map2=Map<String,String>();
var map3=Map.from(map1);
Map创建支持基于另一个Map初始化,他们分别是 扩展操作符(…)和空感扩展操作符(…?)。
var map={1:"a",2:"b",3:"c"};
var map1={0:"aaa",...map};
var map2={0,"bbb",...?map};
var map={"1":"a","2":"b","3","c"};
map["1"]="d";//{"1":"d","2":"b","3","c"};
map["3"]="e";//{"1":"d","2":"b","3","e"};
var map=Map<String,String>();
map["one"]="a";
map["two"]="b";
var map1={"three":"c"};
map1.addAll(map);
var map={"1":"a","2":"b","3":"c"}
map.remove("3");//key
map.removeWhere((key,value)=>key=="2");
更多关于map的相关方法 dart map
Set 是一组特定元素的无序集合,创建是由{ }包裹,“,”逗号分隔。
var set={"a","b","c","d"};
var set1={};//空的set,使用时指定类型
var set2=<String>{};//空的set,创建时指定类型
Set 也支持 扩展操作符(…)和空感扩展操作符(…?)。
var set={"1","2","3"};
var set1={"0",...set};
var set2={"3",...?set};
var set={"1","2","3"};
set.add("4");
var set1={"5","6"};
set.addAll(set1);
var set={"1","2","3"};
set.remove("3");//{"1","2"}
var set1={"1","2"};
set.removeAll(set1);
更多关于Set的相关方法 dart set