list
//固定长度
var list1 = List(3);
//var list1 = new list();
//不定长度
var list2 = List();
//var list2 = new list();
/*在Dart2.2 以上 new 这个关键词可以被省略,并且他们推荐你这么做。*/
// 元素类型固定
var typeStringList = List<String>(); // 只能添加字符串类型的元素
typeStringList .add("hello world"); // 正确
//typeStringList .add(1); // 错误。类型不正确
//直接初始化
var list3 = [1,2,3];//此种情况下 确定为数值类型 int
//list3.add("hello world");//错误
var list4 = [1,"2", true];//不确定类型
list4 .add(1.2); // 正确
// 遍历一
list4.forEach((item){ //匿名
print(item);
});
//遍历二
list4.forEach(showItem);
void showItem(var item){
print(item);
}
//遍历三
for (var i = 0; i < list4.length; i++) {
print(list4[i]);
}
//遍历四
for(var item in list4) {
print(item);
}
List
常用的命令 剩下的自己查API
命令 | 说明 |
---|---|
first |
返回第一个元素 |
isEmpty |
如果集合没有元素,则返回true |
isNotEmpty |
和楼上反着来 |
length |
返回列表的大小(元素数量) |
last |
返回列表中的最后一个元素 |
reversed |
以相反的顺序返回包含列表值的可迭代对象 |
single |
检查列表是否只有一个元素并返回它。 |
add |
加一个 |
addAll |
加一群 |
insert |
指定位置加一个 |
insertAll |
指定位置加一群 |
remove |
删除一个元素 |
removeAt |
删除一直指定位置的元素 |
removeLast |
删除最后一个 |
removeRange |
删除一个范围 |
replaceRange |
更新一个范围内的数值 |
clear |
清空 |
//成为常量
var constList = const [1, 2, 3];
// constList [1] = 1; // 错误
set
Set 是一个元素唯一的无序队列
创建一个set
var names = set()
var names = <String>{};
// Set<String> names = {}; // 这样也是可以的。
// var names = {}; // 这样会创建一个 Map ,而不是 Set 。
//举例 runtimeType获取运行时候的类型
var set1 = {};
print(set1.runtimeType); //JsLinkedHashMap<dynamic, dynamic>
var set2 = <Object>{};
print(set2.runtimeType); //_LinkedHashSet<Object>
'set' 常用的命令 这里只列 和上面不同的几个
命令 | 说明 |
---|---|
contains |
查询单个 |
containsAll |
查询多个 |
firstWhere |
按条件正向查询 |
lastWhere |
按条件反向查询 |
removeWhere |
按条件删除 |
retainAll |
只保留几个 |
retainWhere |
按条件只保留几个 |
//常量
final constSet = const {
'fluorine',
'chlorine',
'bromine',
'iodine',
'astatine',
};
// constSet.add('helium'); // 错误
map
//创建一个map
var testMap = Map();
var testMap2 = {};
var testMap3 = {"a": "this is a", "b": "this is b"};
//map也可以不指定泛型
var map1 = {'aa':'aaa','bb':22,'cc':true}
var map2 = Map();//new 关键字被省略了
map2['1']=1.1;
map2[2] = '22';
//map指定泛型
var map3= <String,String>{};
Map<int,String> map4 = Map();
map4[1] = "a";//新增1个 key value 也可修改1个 key value
map4[2] = "b";
Map<String,int> map5 = {"a":1,"b":2};
update
关键字 修改 某个
updateAll
根据条件修改
Map<String,int> mapValues = {"a":1,"b":2};
int result3 = mapValues.update("a", (value)=>(value*2));//key存在 根据参数函数修改其值
print(result3);//2
int result4 = mapValues.update("d", (value)=>(value*2),ifAbsent: ()=>(10));
//key不存在 但有ifAbsent参数 返回ifAbsent函数的值 并添加到map中
print(result4);//10
Map<String,int> map4 = {"a":1,"b":2,"c":3};
map4.updateAll((String key,int value){
return value*2;
});
print(map4);//{a: 2, b: 4, c: 6}
命令 | 说明 |
---|---|
remove |
删除1个 |
removeWhere |
删除按照条件 |
containsKey |
是否包含key |
containsValue |
是否包含value值 |
clear |
清空map |
addAll |
整体合并另一个map 泛型要一致,后者覆盖前者 |
addEntries |
合并两个map 如果key有重复,被合并的map的value覆盖前者 |
putIfAbsent |
存在key就获取值,不存在则添加到map 然后返回值 |
cast |
泛型类型提升为其父祖类 |
网友评论